EP-MEL-04 — Reservation Lifecycle (Quote → Confirm → Stay → Checkout)
Companion: Backlog README ·
EPICS.md· canonical:07-epics-and-user-stories.md§6
Summary
| Wave | R1 (+ OTA channel in R3) |
| Priority | P0 |
| Primary owner | reservation-service |
| Participating services | inventory-service, pricing-service, billing-service, payment-gateway-service, notification-service |
| Journeys realised | J-02, J-03, J-04, J-05, J-06, J-07 |
| Workflows | WF-02, WF-03, WF-04 |
| Frontend surfaces | Tenant Booking Web · Tenant Booking Mobile · Electron Desktop (front-desk) |
| Story count | 12 |
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-CONFIRMorchestrates inventory hold → payment intent → booking commit; rollback documented.
Stories
| ID | Title |
|---|---|
| US-MEL-0030 | Generate price quote with TTL |
| US-MEL-0031 | Place an inventory hold for a quote |
| US-MEL-0032 | Confirm a reservation with payment outcome |
| US-MEL-0033 | Modify reservation dates within policy |
| US-MEL-0034 | Cancel reservation with policy enforcement |
| US-MEL-0035 | Upsell offers (early check-in, late check-out, room upgrade) |
| US-MEL-0036 | Check-in flow (front desk + guest mobile self-check-in) |
| US-MEL-0037 | Mid-stay folio updates (charges, incidentals) |
| US-MEL-0038 | Checkout flow with folio close and key revoke |
| US-MEL-0039 | Walk-in booking from front desk |
| US-MEL-0040 | No-show handling |
| US-MEL-0041 | Group booking with single folio across multiple rooms |
Full AC in
../07-epics-and-user-stories.md§6.
Cross-references
- Saga:
SAGA-MEL-RESERVATION-CONFIRMin../04-event-driven-architecture.md - Service readiness:
../roadmap/service-readiness-gates.md - Definition of Done:
../standards/DEFINITION_OF_DONE.md