Comanda is a SaaS platform designed to manage online orders and digital payments for fast-food establishments. It enables businesses to receive, process, and track customer orders in real time, providing a scalable foundation for modern, digital-first operations.
Comanda is architected around explicit bounded contexts, each one representing an independent system with its own lifecycle and deployment pipeline. Every boundary is deployable on its own, evolving autonomously without leaking concerns across domains.
Rather than a traditional layered monolith, Comanda is structured as a distributed domain model organized within a modular monorepo. Each bounded context fully owns its business rules, infrastructure, tests, and operational workflows, ensuring strict domain isolation and long-term architectural integrity.
The repository is intentionally structured to reflect Comanda’s architectural boundaries and operational model.
.
├── .github/ # ci/cd workflows (pipelines)
├── Artifacts/ # internal nuget packages (shared kernel/contracts)
├── Boundaries/ # independent bounded contexts
│ ├── Comanda.Stores/
│ └── Comanda.Subscriptions/
├── .editorconfig # global code style rules
└── nuget.config # centralized nuget configuration
All bounded contexts live in Boundaries/ directory (e.g., Comanda.Stores, Comanda.Subscriptions).
Each directory represents an independent system with its own solution, source code, tests, Docker configuration, and deployment pipeline. Every boundary builds, evolves, and deploys autonomously.
| Layer | Technology | Purpose |
|---|---|---|
| Backend | .NET 9 | High-performance APIs and long-term maintainability |
| Persistence | MongoDB | Aggregate-oriented, boundary-aligned persistence |
| Resilience | Polly | Retries, circuit breakers, and explicit QoS policies |
| Observability | Sentry · Seq | Real-time errors, tracing, and structured diagnostics |
| Containerization | Docker | Isolation and reproducible deployments |
| CI/CD | GitHub Actions | Autonomous pipelines per bounded context |