Services Catalog
6 bounded contexts extracted via Domain-Driven Design. Each service owns its data and communicates through well-defined interfaces.
Context Map
Solid lines = synchronous (ACL), dashed = async events via Service Bus.
Core Domain
Travel Booking
plannedHandles all travel booking operations including itineraries, supplier integrations, and pricing. The highest-value core domain with the most complex business rules.
Event Management
plannedManages events, venues, schedules, and attendees. Complex scheduling logic with venue capacity constraints and multi-day event support.
Supporting
Workforce + Allocation
plannedManages staff profiles, skills, shift allocations, and availability. Subscribes to Travel and Event domain events to coordinate staffing needs.
Reporting (CQRS)
plannedRead-only reporting service using CQRS pattern. Aggregates data from all services via CDC and event projections to build cross-module dashboards and reports.
Generic
Service Comparison
| Service | Owns | Key APIs | Communication | DB |
|---|---|---|---|---|
| Travel Booking | bookings, itineraries, suppliers, pricing rules | /api/travel/* | Sync REST (client-facing) + Payment ACL (sync to legacy) + Async events (BookingCreated, BookingCancelled) | Azure SQL — Travel DB (bookings, itineraries, suppliers, pricing tables) |
| Event Management | events, venues, schedules, attendees | /api/events/* | Sync REST + Payment ACL (sync to legacy) + Async events (EventCreated, AttendeeRegistered) | Azure SQL — Event DB (events, venues, schedules, attendees tables) |
| Workforce + Allocation | staff profiles, allocations, shifts, skills | /api/staff/* | Subscribes to travel/event events (StaffNeeded, EventStaffed) + Sync REST for staff queries | Azure SQL — Workforce DB (staff, allocations, shifts, skills tables) |
| Communications | notifications, templates, delivery logs | /api/comms/* | Subscribes to ALL domain events (BookingCreated → send confirmation, EventReminder → send email, etc.) | Azure SQL — Comms DB (templates, notification logs, delivery status) |
| Reporting (CQRS) | report definitions, read models, dashboards | /api/reports/* | CDC from all service databases + Event projections from Service Bus | Azure SQL — Reporting DB (materialized views, read models, CDC replicas) |
| Payment (Legacy) | payments, invoices, reconciliation | /api/payments/* (via ACL bridge) | ACL adapter pattern — new services call a clean interface that translates to legacy API format | Legacy SQL Server (shared monolith DB) — payment, invoice tables |