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

Supporting

Generic

Service Comparison

ServiceOwnsKey APIsCommunicationDB
Travel Bookingbookings, 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 Managementevents, 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 + Allocationstaff profiles, allocations, shifts, skills/api/staff/*Subscribes to travel/event events (StaffNeeded, EventStaffed) + Sync REST for staff queriesAzure SQL — Workforce DB (staff, allocations, shifts, skills tables)
Communicationsnotifications, 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 BusAzure 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 formatLegacy SQL Server (shared monolith DB) — payment, invoice tables