30+ Updates per Second per Account: Uber Scales Ledger Processing with Batching
Summary
Uber has implemented a new high-throughput financial ledger processing system capable of handling over 30 updates per second per account, even under sustained write contention. This system addresses bottlenecks in its distributed accounting infrastructure, which uses a double-entry model requiring strict serialization. Previously, each ledger update triggered an independent processing cycle, leading to significant overhead under high contention. The updated design introduces a batching-based execution model, aggregating multiple operations targeting the same account into approximately 250-millisecond time windows. These batches are processed as a single atomic unit, sharing ledger read/write cycles. Coordination is managed by Redis, and optimistic atomic updates ensure correctness. This architecture, structured in three stages (grouping, execution, persistence), significantly reduces processing times for high-volume financial workloads and incorporates failure isolation.
Key takeaway
For AI Architects or Software Engineers designing financial systems with high transaction volumes, Uber's batching approach offers a blueprint for scaling ledger processing. You should consider implementing time-bound batching, like their 250ms window, coordinated via Redis, to consolidate updates for hot accounts. This strategy can drastically cut multi-hour reconciliation pipelines to minutes, improving operational efficiency and maintaining strict consistency for your financial data.
Key insights
Batching financial ledger updates with Redis coordination enables high-throughput processing while maintaining strict consistency.
Principles
- Batching reduces overhead from repeated storage interactions.
- Strict serialization is crucial for financial correctness.
- Balance batch window size with end-to-end latency.
Method
Aggregate account-specific updates into 250ms batches using Redis, execute as a single atomic unit with optimistic updates, then persist results.
In practice
- Implement 250ms batching for high-contention accounts.
- Use Redis for coordinating batched financial transactions.
- Design for failure isolation within batch operations.
Topics
- Financial Ledger
- Batch Processing
- Distributed Systems
- Redis
- High Throughput
- Transaction Processing
Best for: Software Engineer, AI Architect, Director of AI/ML
Related on AIssential
Editorial summary, takeaway, and curation by AIssential. Original article published by InfoQ.