Multi-service trip booking consistency
Your task
Design the booking/transaction flow for a travel platform where a single 'trip' purchase must reserve a flight, a hotel, and a car, each owned by a different microservice with its own database, possibly in different regions. The whole trip must be all-or-nothing from the user's view (no charging for a flight if the hotel can't be booked), but you cannot run a distributed ACID transaction across these independent services. How do you keep the booking consistent?
It covers
- Transactions
- Saga
- Isolation