Files
omo-bot/docs/09_architecture_decisions.md
T
zwitschi 77e43a6a38 Add initial project structure, including README, CONTRIBUTING, and documentation files
- Created .gitignore to exclude unnecessary files
- Added README.md with project description and core features
- Introduced CONTRIBUTING.md for development guidelines
- Established documentation files for architecture, quality requirements, and technical risks
2026-05-17 15:50:43 +02:00

30 lines
1.4 KiB
Markdown

# Architecture Decisions
## ADR-001: Discord.js over Discord.py
**Status:** Accepted
**Context:** Node.js and Python both viable. Team has stronger Node.js experience.
**Decision:** Use Discord.js for the bot runtime.
**Consequences:** Faster development velocity; ecosystem rich with community plugins (command handling, modals, components).
## ADR-002: PostgreSQL over MongoDB
**Status:** Accepted
**Context:** Mileage data is relational (user → role → event → score). MongoDB adds flexibility but sacrifices query power.
**Decision:** Use PostgreSQL with JSONB columns for extensible user metadata.
**Consequences:** Schema migrations needed for new features; joins straightforward.
## ADR-003: Polling over Webhooks for Content Sources
**Status:** Accepted
**Context:** YouTube, Instagram, TikTok do not provide push webhooks to arbitrary third parties without approval.
**Decision:** Poll public APIs on a CRON schedule (15-min interval).
**Consequences:** ~5 min delay between publish and Discord post; API quota management required.
## ADR-004: Modular Monolith over Microservices
**Status:** Accepted
**Context:** Single-developer or small team; deployment complexity of microservices not justified.
**Decision:** Single process with internal module boundaries (commands, events, mileage, syndication).
**Consequences:** Simpler deploy, debug, and develop; can extract services later if needed.