Architecture Overview
The Keller Postman platform is a multi-tenant, event-driven system built on Azure. It follows Domain-Driven Design with bounded contexts, CQRS, and an outbox pattern for reliable event delivery.
High-Level Topology
Frontend (React / Azure SWA)
↓
BFF Layer (.NET / Azure Container Apps)
↓
GraphQL Gateway (composition reads)
↓
Domain APIs (.NET / Azure Container Apps)
↓
Azure Service Bus (Dapr pub/sub)
↓
Azure SQL / Cosmos DB
Key Design Decisions
- Bounded contexts — each domain service owns its data and emits integration events; it never directly queries another service's database
- Outbox pattern — domain events are persisted in the same transaction as the aggregate, then published asynchronously by a Quartz job
- Multi-tenancy — tenant ID is resolved from HTTP headers and applied as a global query filter in EF Core
- Auth — Azure AD (backend services) and Auth0 (BFF/frontend)
Service Map
This page is a stub. A full architecture diagram and per-service breakdown will be added here.