Building a high-performance ticketing system with TigerBeetle
Автор создал высокопроизводительную систему продажи билетов TigerFans с использованием TigerBeetle, финансовой базы данных для транзакций. Система достигла показателя в 977 бронирований билетов в секунду, что в 15 раз быстрее, чем базовый показатель продажи билетов на концерт Oasis (65 билетов в секунду). Этот образовательный проект превратился в 19-дневный оптимизационный марафон, демонстрирующий потенциал TigerBeetle для решения задач с экстремальной нагрузкой.
В основе системы лежит модель двойной бухгалтерии, где билеты представлены как финансовые транзакции. Для каждого типа билетов создаются три счета: Operator (весь инвентарь), Budget (доступные к продаже) и Spent (проданные). Ключевая особенность — использование флага DEBITS_MUST_NOT_EXCEED_CREDITS, который архитектурно предотвращает перепродажу билетов. Реализация на Python с FastAPI, SQLite и симулированным платежным провайдером позволила создать рабочую демо-версию с двухфазным процессом оформления и автоматическим аннулированием просроченных резервирований.
Идея родилась из твита основателя TigerBeetle Joran Dirk Greef, который назвал создание такой системы "слишком простым". После демонстрации команды TigerBeetle, автор получил вызов — превзойти показатели продажи билетов Oasis. Это вдохновило на глубокую оптимизацию, доказав, что даже на Python можно достичь выдающейся производительности при правильной архитектурной основе.
Комментарии (21)
- Продажа билетов на концерты часто создаёт иллюзию быстрой распродажи, но на деле билеты просто резервируются ботами и перепродажниками, а не покупаются.
- Tigerbeetle достигает высокой пропускной способности за счёт пакетной обработки транзакций, но при этом неясно, насколько это влияет на надёжность и устойчивость системы.
- Пользователи отмечают, что при использовании Tigerbeetle важно понимать, что применение его в системе продажи билетов не обязательно приведёт к улучшению UX, так как узким местом остаётся не транзакционная пропускная способность, а управление очередями и процессом покупки.
Synadia and TigerBeetle Commit $512k USD to the Zig Software Foundation 🔥 Горячее
Synadia и TigerBeetle совместно выделили $512,000 на поддержку Zig Software Foundation в течение двух лет. Synadia, создатель NATS.io, помогает крупным предприятиям проектировать и масштабировать архитектуры в облаке и на периферии, обслуживая клиентов в финансовой сфере, электронной коммерции, гейминге и промышленном IoT. TigerBeetle, финансовая база данных, разработанная на Zig с философией "TigerStyle", подчеркивает правильность, ясность и надежность.
Основатель Synadia Дерек Коллисон отметил, что Zig переопределяет возможности современного системного программирования благодаря своему подходу к контролю, производительности и простоте. Основатель TigerBeetle Йоран Дирк Гриф выразил уверенность, что Zig сыграет основополагающую роль в следующем поколении надежных распределенных систем. Обе компании разделяют видение предсказуемого, простого и заслуживающего доверия программного обеспечения, поддерживая Эндрю Келли и весь Zig-сообщество.
Комментарии (104)
- Оценивали Rust, Zig и Ada/SPARK для критически важного ПО; Rust имеет поддержку корпорации и сообщества, но не применяется в кибер-физических системах.
- TigerBeetle получил $512k в течение 2 лет от Synadia и TigerBeetle, что вызвало вопросы о стратегии финансирования и приоритете языков.
- Обсуждение вылилось в обмен любезностями и техническими деталями, включая предположения о переходе на Zig и оставлении Rust без должной поддержки.
TigerBeetle is a most interesting database 🔥 Горячее 💬 Длинная дискуссия
TigerBeetle — это финансовый транзакционный движок, построенный на принципах, противоположных общепринятым: медленная разработка кода, детерминированное симуляционное тестирование и нулевые зависимости. Вместо SQL он использует примитивы дебета и кредита, что соответствует изначальной цели транзакционных систем — обеспечению бизнес-операций, как описал ещё Джим Грей в 1985 году.
Традиционные SQL-базы требуют 10–20 запросов для обработки одной финансовой транзакции, создавая узкие места, особенно при работе с «горячими» счетами. TigerBeetle, написанный на Zig, предлагает распределённую архитектуру по умолчанию, статическое выделение памяти и assertions в продакшене. Это ответ на растущие потребности в мгновенных платежах и реальном биллинге, где скорость и надёжность критичны.
Комментарии (170)
- Участники обсуждают технические особенности TigerBeetle, включая его специализацию на финансовых операциях, детерминированное тестирование и минималистичный подход к зависимостям.
- Высказываются критические замечания: отсутствие поддержки многопоточности для масштабирования, проблемы с аутентификацией и совместимостью с облачными платформами, такими как Cloudflare Workers.
- Поднимается вопрос о потенциальной предвзятости статьи, так как её автор является инвестором проекта.
- Отмечается, что традиционные SQL-базы данных по-прежнему эффективно справляются с большинством задач, несмотря на возраст.
- Обсуждаются возможные аналоги TigerBeetle, такие как FoundationDB, и его применимость за пределами финансового сектора.