Building a high-performance ticketing system with TigerBeetle
15 days ago
- #TigerBeetle
- #Ticketing-System
- #High-Performance
- TigerBeetle is a financial transactions database designed for high-performance ticketing systems, ensuring no ticket is sold twice under extreme load.
- The project modeled tickets as financial transactions using double-entry accounting principles with accounts for Operator, Budget, and Spent.
- Initial performance was 115 tickets per second, but optimization efforts, including switching to PostgreSQL and Redis, improved it to 977 tickets per second.
- A hot/cold path architecture was implemented, using Redis for ephemeral session data and PostgreSQL for durable order records, significantly boosting performance.
- Batching transfers in TigerBeetle and avoiding multiple workers improved efficiency, with batch sizes averaging 5-6 transfers per request.
- The final system achieved 977 ticket reservations per second, 15x faster than the Oasis baseline, with median latency of 11 milliseconds.
- The project demonstrated that TigerBeetle's design is highly effective, even with Python's overhead, and could perform even better in faster languages like Go or Zig.