Carving a booking API out of a freight monolith
A freight forwarder whose quoting, booking, tracking and invoicing all run inside one aging application.
- Challenge
- Releases are rare and risky, the people who wrote the core now work elsewhere, and key customers want to book shipments through an API instead of by email.
- Approach
- 1Cover the busiest booking paths with characterization tests before changing any code
- 2Agree on an OpenAPI contract with pilot customers and give them a sandbox with mock responses while the service is built
- 3Put a routing layer in front of the monolith so booking traffic can move over one capability at a time
- 4Build the booking service with OAuth client credentials and per-customer rate limits, publishing booking events through a transactional outbox so tracking and invoicing stay in sync
- 5Switch off the legacy booking code once no traffic reaches it
- Outcome
- Customers book through a documented, secured API rather than by email, operations keep running throughout, and the monolith shrinks slice by slice with no single high-risk cutover.
Services involved





