Meridian Exchange · 2024
Rebuilding Meridian Exchange's bidding engine around per-lot single-writer partitions
Meridian was losing bids to lock contention in the closing seconds of every auction, and disputes over bid order had to be settled manually. We rebuilt the engine around per-lot single-writer partitions and an append-only log, trading cross-lot transactions for provable ordering at 1,800 bids per second.
- Retail & E-commerce
- 9 months
- 7 engineers, 1 designer, 1 delivery lead
- 1,800 bids/sec
- Sustained throughput at auction close
- 94 ms
- p99 bid acknowledgement, down from 6.2 s
- 0 disputes
- Contested bid orderings in 14 months live
The challenge
What was wrong
Meridian's bidding engine wrote every bid into one MySQL table guarded by row locks. In the final 90 seconds of a lot up to 4,000 buyers converge, and lock waits pushed p99 acknowledgement past 6 seconds while bids occasionally landed out of the order they arrived. Auction extension rules lived in application code, so two web nodes could disagree on when a lot actually closed. Buyers disputed around 40 lots a quarter, and each dispute meant re-running the lot by hand.
The approach
What we did
We made each lot a single-writer partition. Bids append to a per-lot log owned by one sequencer process, with partitions assigned through NATS JetStream, so ordering is decided in one place rather than by lock arrival order. Close time became a value written into the log, not a clock read on whichever node served the request. The trade-off is that cross-lot transactions are gone: proxy bids cascading across bundled lots now settle in about 200 ms, and we show that settling state rather than hiding it.
“The old engine was fine until it mattered. Atmora spent two weeks reproducing our close-time races before writing a line of code, and we have not had a contested lot since cutover.”
Stack
What it runs on
- Go
- NATS JetStream
- PostgreSQL
- Redis
- TypeScript
- React
- Kubernetes
- Grafana
Services
Practices involved
Engineering
Custom Software Development
Systems built around the processes no packaged product was ever going to cover.
Cloud & Platform
Platform Engineering
An internal platform with golden paths, run as a product with users and a roadmap.
Engineering
API Development
Contract-first interfaces with versioning, quotas and deprecation rules agreed up front.
Engineering
Web Application Development
Browser-delivered software measured on the slowest device your users actually own.
More work
Other engagements
Kestrel Industrial · 2023
Shop-floor system modernisation
Four plants, 300 machines and a VB6 application nobody could test safely. We replaced it one production cell at a time behind a routing gateway, keeping Oracle as the book of record until the final cell was live. Total unplanned stoppage across the entire programme came to 11 minutes.
Northwind Commodities · 2025
Incremental end-of-day valuation
A seven-hour overnight batch left Northwind's traders working from yesterday's P&L whenever a curve was corrected. We replaced it with an incremental graph over versioned inputs, cutting the full run to 34 minutes and a curve correction to 90 seconds, with 12 months of valuations replayable to the input.
Corvus Logistics · 2024
Dispatch planning and ETA models
Corvus planned 220 daily routes by hand and quoted ETAs that were often an hour wrong. We paired a solver seeded with the previous day's plan with a gradient-boosted ETA model, and gave drivers an app that queues work offline. Planning fell from four hours to 22 minutes a day.

