Search, select, re-validate, pay, confirm, voucher
Travolyo VIP International
One flow from search to voucher, for every product type.
The booking engine owns the sequence that every travel product shares: search, select, re-validate, collect traveller data, take payment, confirm with the supplier, and issue a document. Product types differ in their details, so the engine models the shared spine once and lets each product plug its own availability, pax model and cancellation grammar into it.
See the workflowSearch, select, re-validate, pay, confirm, voucher
Hotels, flights, transfers, activities, cars and packages on one spine
Idempotent booking creation with replay-safe keys
Pre-payment rate re-validation with an explicit price-held flag
Structured cancellation policies with absolute deadlines
Timeout reconciliation: unknown outcomes are queried, never guessed
When a supplier times out on a booking call, the reservation may or may not exist. Systems that treat a timeout as a failure create duplicate bookings; systems that treat it as a success create phantom ones. The engine journals intent before the call, then reconciles by querying the supplier with the client reference until the true state is known.
Keep the product, traveller and chosen rate together as one traceable intent.
Search, select, re-validate, pay, confirm, voucher

Check price, availability and cancellation terms again before money moves.
Hotels, flights, transfers, activities, cars and packages on one spine

Journal the request, resolve timeouts and issue the voucher from the final state.
Idempotent booking creation with replay-safe keys

This correctness core is real code rather than a description, and it runs on this page against a supplier you can break on purpose. It is the same TypeScript the test suite imports, covered by 23 tests. The one worth trying: the timeout that created the reservation anyway — press book three times and the supplier is still called once.
Supplier behaviour
Testing a booking path against a supplier that always succeeds proves nothing. These are the failure modes that happen in production and are almost never exercised before they do.
Attempts made
0
Supplier calls
0
Reservations held
0
Unresolved in journal
0