Real-time container tracking for 10,000 active shipments
Migrating off a 13-year-old Java monolith without dropping a single shipment in transit.
Tidal Freight's tracking system was a Java monolith from 2011. Every peak shipping period caused partial outages — ops staff had learned to restart services at 2am. Response times averaged 11–14 seconds, and onboarding a new carrier required touching 23 tightly coupled modules. Two previous migration attempts had been abandoned mid-flight.
Three weeks of instrumentation before writing a line of new code. The bottleneck wasn't the database — it was synchronous HTTP calls to carrier APIs on the critical read path. We introduced Kafka to decouple location updates from queries, applied CQRS, and ran old and new systems in parallel for six weeks. The cutover happened carrier-by-carrier.
P95 response times dropped to 180ms. The first peak season post-launch passed without incident. Onboarding a new carrier now takes one engineer two to three days instead of months.

We'd tried this migration twice and given up. What was different this time was that they spent the first month just listening and measuring — they refused to propose a solution until they understood what was actually wrong.
Have a Similar
Challenge?
Let's discuss how we can help you achieve similar results.
Start a Conversation