Documentation Index
Fetch the complete documentation index at: https://docs.travelbase.ai/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Travelbase is strongly consistent for single-resource operations and eventually consistent for derived data such as aggregates, search indexes, and usage metrics. Understanding this distinction will save you from writing unnecessary polling logic ā and from missing the cases where it actually matters.Strong Consistency
Any resource you create or update is immediately readable by its ID on the
very next request ā on any server, in any region.
Eventual Consistency
Aggregates, list filters, search indexes, and usage counters may lag by up
to a few seconds after a write before reflecting the latest state.
What Is Consistent When
| Operation | Consistency | Typical Lag |
|---|---|---|
GET /v1/bookings/:id after a create or update | Strong | Immediate |
GET /v1/customers/:id after a create or update | Strong | Immediate |
List endpoints (GET /v1/bookings) | Eventual | Up to 5s |
| Search & filter queries | Eventual | Up to 5s |
| Usage metrics & counters | Eventual | Up to 30s |
| Webhook delivery after an event | Eventual | Up to 10s |
Idempotency
All mutating requests (POST, PATCH, DELETE) accept an
Idempotency-Key header. Sending the same key twice within 24 hours
returns the original response without creating a duplicate or triggering a
second side-effect.
Conflicts
When two requests attempt to update the same resource simultaneously, Travelbase uses optimistic concurrency control. Every mutable resource exposes aversion field. Pass it on updates ā if the version has moved on
since you read the record, the request is rejected.
409 Conflict is always: re-fetch ā apply
changes ā retry.
The
version field increments by 1 on every successful mutation. You can
use this to detect whether a record changed between two reads without
comparing all of its fields.
