Лёгкий и быстрый сервис распределённых блокировок, упорядочивающий несколько процессов и серверов вокруг одного ключа
Когда несколько процессов или серверов одновременно обращаются к одному и тому же ресурсу (счёт, заказ, склад, пакетное задание…), возникает состязание. Ticketing решает эту проблему одним бинарным протоколом поверх TCP — клиент получает (acquire) именованный ключ (key), проходит критическую секцию и затем освобождает (release) его. Всё это время сервер выстраивает ожидающих в очередь FIFO, а истечение lease служит страховкой на случай гибели клиента.
⚡
Бинарный фреймовый протокол
Спроектирован с нуля на полях фиксированной ширины — данные читаются по смещению, без этапа парсинга, поэтому накладные расходы на запрос минимальны.
🔑
Fencing-токены
На каждое получение блокировки выдаётся монотонно возрастающий токен, что обеспечивает безопасность, даже если сервер блокировок не абсолютно консистентен в каждый момент времени.
🔄
Бесперебойный кластер
Активно-резервный failover на основе приоритета. Минимум из двух узлов позволяет перезапускать и переживать сбои без остановки сервиса.
🌐
Официальные клиенты на 8 языках
Поверх одного и того же побайтового протокола каждый язык получает свой естественный, идиоматичный API (асинхронный или блокирующий).