Skip to main content

EP-MEL-04 — Reservation Lifecycle (Quote → Confirm → Stay → Checkout)

Companion: Backlog README · EPICS.md · canonical: 07-epics-and-user-stories.md §6

Summary

WaveR1 (+ OTA channel in R3)
PriorityP0
Primary ownerreservation-service
Participating servicesinventory-service, pricing-service, billing-service, payment-gateway-service, notification-service
Journeys realisedJ-02, J-03, J-04, J-05, J-06, J-07
WorkflowsWF-02, WF-03, WF-04
Frontend surfacesTenant Booking Web · Tenant Booking Mobile · Electron Desktop (front-desk)
Story count12

Outcome

The reservation aggregate is the operational truth of every guest interaction: quote (with TTL), hold inventory, confirm with payment outcome, capture mid-stay folio updates, handle modifications/cancellations/no-shows/walk-ins, support group bookings under a single folio, and close at checkout with policy-compliant invariants throughout.

Cross-cutting AC for this epic

  • Every state transition emits a domain event (outbox-backed) with reservation.id, tenant_id, prior + next state.
  • Idempotency-Key required on confirm/modify/cancel/walk-in/checkout.
  • Money frozen at confirm via FX-snapshot; later mid-stay charges use the snapshot of the confirm-time tenant currency.
  • Saga SAGA-MEL-RESERVATION-CONFIRM orchestrates inventory hold → payment intent → booking commit; rollback documented.

Stories

IDTitle
US-MEL-0030Generate price quote with TTL
US-MEL-0031Place an inventory hold for a quote
US-MEL-0032Confirm a reservation with payment outcome
US-MEL-0033Modify reservation dates within policy
US-MEL-0034Cancel reservation with policy enforcement
US-MEL-0035Upsell offers (early check-in, late check-out, room upgrade)
US-MEL-0036Check-in flow (front desk + guest mobile self-check-in)
US-MEL-0037Mid-stay folio updates (charges, incidentals)
US-MEL-0038Checkout flow with folio close and key revoke
US-MEL-0039Walk-in booking from front desk
US-MEL-0040No-show handling
US-MEL-0041Group booking with single folio across multiple rooms

Full AC in ../07-epics-and-user-stories.md §6.

Cross-references