Batch reads that once took 31.4 milliseconds at the median now finish in 5.60 milliseconds at Perplexity.
Getting there meant replacing Amazon DynamoDB with CobbleDB, a key-value store the company wrote in Rust. The workload explains why managed pricing ran out of road. Every query fans out to between 100 and 120 target page keys, split into parallel batches of 10 to 20. Past 200,000 requests a second, per-byte billing became untenable, and engineers could not see partition placement or caching policy, which left tail-latency spikes from uncached reads and cross-zone hops out of reach.
Storage now splits three ways. Pillar keeps durable state on YTsaurus over mechanical drives. Lorry aggregates exports into partition-aligned batches. CobbleDB serves lookups using RocksDB, memory-mapped caching and local NVMe, with three replicas for each partition. A stateless router keeps reads inside a single availability zone and hedges a slow replica by issuing a concurrent request elsewhere.
Tail numbers moved with the median. The p90 fell from 56.7 milliseconds to 9.77, and p99 from 123 milliseconds to 24.2.
Ownership is the trade. Node lifecycle, backup verification and partition rebalancing now sit with in-house engineers, and applications have to tolerate eventual consistency.
The build itself was small. Aravind Srinivas, the chief executive, put the codebase at 40,000 lines of Rust. Two systems engineers produced it in two months, he said, working alongside a swarm of autonomous coding agents that watched integration tests, builds and runbooks. The code is due to be open sourced.