Skip to content

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

Booking Service Topology C4 Diagram

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.

  1. Reservations use optimistic locking via _rev field to prevent concurrent update conflicts
  2. Reservation status transitions are event-sourced via reservation.status_changed Kafka 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:

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


Generated from architecture/metadata/ YAML files by portal/scripts/generate-domain-pages.py.