Booking Domain¶
Team: Booking Platform Team
Services: 1
Domain color: #059669
Reservation lifecycle management from creation through completion, including participant management, insurance add-ons, and status tracking.
Topology¶
Services¶
| Service | Database Engine | Schema | Tables | API Endpoints |
|---|---|---|---|---|
| svc-reservations | PostgreSQL 15 | reservations | 3 | 8 |
Data Ownership¶
Every data entity has exactly one owning service. Other services access it read-only through APIs.
| Data Entity | Owning Service | Read Access |
|---|---|---|
| Reservations | svc-reservations | svc-check-in, svc-scheduling-orchestrator, svc-partner-integrations |
| Participants | svc-reservations | svc-check-in |
Data Stores¶
svc-reservations¶
- Engine: PostgreSQL 15
- Schema:
reservations - Tables:
reservations,participants,status_history - Features:
- Optimistic locking via _rev field
- Composite index on (guest_id, trip_date)
- Monthly partitioning by reservation_date
- Volume: ~2,000 new reservations/day
- Backup: Continuous WAL archiving, daily base backup, 30-day PITR
Bounded Context Rules¶
These rules are non-negotiable for this domain.
- Reservations use optimistic locking via
_revfield to prevent concurrent update conflicts - Reservation status transitions are event-sourced via
reservation.status_changedKafka events
Cross-Domain Integration¶
Outbound (this domain calls)¶
| Source | Target | Target Domain | Action | Async |
|---|---|---|---|---|
| svc-reservations | svc-guest-profiles | Guest Identity | Validate guest identity | No |
| svc-reservations | svc-trip-catalog | Product Catalog | Check trip availability | No |
| svc-reservations | svc-payments | Support | Process deposit payment | No |
| svc-reservations | svc-notifications | Support | Send booking confirmation | Yes |
| svc-reservations | svc-trip-catalog | Product Catalog | Verify availability | No |
| svc-reservations | svc-guest-profiles | Guest Identity | Validate participant | No |
| svc-reservations | svc-notifications | Support | Send status update | Yes |
| svc-reservations | svc-notifications | Support | Send insurance confirmation | Yes |
Inbound (called by other domains)¶
| Source | Source Domain | Target | Action | Async |
|---|---|---|---|---|
| svc-check-in | Operations | svc-reservations | Verify reservation exists | No |
| svc-partner-integrations | External | svc-reservations | Create reservation | No |
| svc-partner-integrations | External | svc-reservations | Confirm reservation | No |
| svc-guest-profiles | Guest Identity | svc-reservations | Query past bookings | No |
| svc-gear-inventory | Logistics | svc-reservations | Verify booking | No |
| svc-transport-logistics | Logistics | svc-reservations | Get booking details | No |
| svc-loyalty-rewards | Support | svc-reservations | Verify completed booking | No |
| svc-reviews | Support | svc-reservations | Validate reservation exists and is COMPLETED | No |
Domain Events¶
Events Produced¶
| Event | Channel | Producer | Summary |
|---|---|---|---|
reservation.created | novatrek.booking.reservation.created | svc-reservations | Published when a new reservation is confirmed |
reservation.status_changed | novatrek.booking.reservation.status-changed | svc-reservations | Published when a reservation status transitions |
Consumers of these events:
reservation.created→ svc-scheduling-orchestrator, svc-analyticsreservation.status_changed→ svc-notifications, svc-analytics
Events Consumed¶
| Event | Channel | Producer | Producer Domain | Consuming Service |
|---|---|---|---|---|
payment.processed | novatrek.support.payment.processed | svc-payments | Support | svc-reservations |
Business Capabilities¶
Capabilities served by this domain's services.
| ID | Capability | Status | Description |
|---|---|---|---|
| CAP-1.3 | Reservation Management | IMPLEMENTED | Create, modify, cancel, and look up adventure reservations |
Quick Links¶
Generated from architecture/metadata/ YAML files by portal/scripts/generate-domain-pages.py.