The Flight Booking That Charged Without a Seat
The Flight Booking That Charged Without a Seat
Your travel platform coordinates end-to-end vacation bookings across four independent microservices: Hotel Service, Flight Service, Car Rental Service, and Payment Service. During a flash holiday promotion, a customer purchases a package deal. The checkout flow charges the customer's credit card 1,200, the package status transitions to an ambiguous FAILED_PARTIAL state, and customer support receives thousands of frantic calls. You are asked to design an orchestration-based Saga architecture that guarantees eventual consistency, resilient compensation execution, and strict idempotency across all downstream services.
The Flight Booking That Charged Without a Seat
Your travel platform coordinates end-to-end vacation bookings across four independent microservices: Hotel Service, Flight Service, Car Rental Service, and Payment Service. During a flash holiday promotion, a customer purchases a package deal. The checkout flow charges the customer's credit card 1,200, the package status transitions to an ambiguous FAILED_PARTIAL state, and customer support receives thousands of frantic calls. You are asked to design an orchestration-based Saga architecture that guarantees eventual consistency, resilient compensation execution, and strict idempotency across all downstream services.
Provide 1–2 precise sentences for each architectural dimension. Each box guides you on what staff-level interviewers evaluate.
Define SLA targets, hard consistency constraints, and conditions the system must never violate.
Quantify throughput (QPS/RPS), read:write ratios, and peak burst multipliers.
Step-by-step path: client ingress → API gateway → queues → background workers → persistence.
Database engine, table schema, partition keys (PK/SK), and durability strategy.
What resource hits saturation first under 10x traffic? (CPU, disk IOPS, connection pools, network).
Worker crashes, network partitions, split-brain, poison pill DLQ, retries, and idempotency.
What did you sacrifice in exchange and why? (e.g. eventual consistency vs latency, cost vs redundancy).