Ketika resource yang sama (akun, pesanan, stok, batch job, dll.) disentuh oleh banyak proses atau banyak server secara bersamaan, terjadilah kontensi. Mutex atau semaphore bawaan bahasa pemrograman hanya berlaku di dalam satu proses — jika prosesnya banyak atau tersebar di beberapa server, dibutuhkan sarana saling mengeksklusi (mutual exclusion) tersendiri yang melampaui batas proses.
Ticketing adalah kumpulan server lock dan klien untuk masalah ini, yaitu saling mengeksklusi terdistribusi yang melampaui batas proses/server. Klien terhubung ke server lock melalui TCP, memperoleh (acquire) key bernama, melewati critical section, lalu melepaskannya (release).
Ticketing tidak menggunakan JSON, melainkan protokol frame dengan field biner berukuran tetap. Setelah dispatch 1 byte op, byte-byte berukuran tetap sesuai op tersebut dibaca sebagai panjangnya, dan hanya key terakhir yang dibaca sampai newline (\n). Parsing di sini lebih mirip pembacaan offset belaka ketimbang parsing sesungguhnya, sehingga overhead-nya lebih kecil dibanding metode yang mem-parse JSON di setiap permintaan.
Setiap kali lock diperoleh, server menyertakan fencing token u64 yang selalu bertambah secara monoton. Dengan membuat resource yang dilindungi memvalidasi monotonisitas token ini, klien yang terlambat bangun setelah lease kedaluwarsa dapat ditolak aksesnya karena membawa token yang lebih rendah. Hasilnya, keamanan tetap terjaga meskipun server lock itu sendiri tidak sepenuhnya konsisten di setiap saat — ini penting terutama pada masa failover.
Beroperasi dengan 1 server saja (mode single), tetapi jika dibutuhkan operasi tanpa downtime, susunlah cluster dengan minimal 2 server. Cluster memilih satu active bukan berdasarkan konsensus (kuorum), melainkan berdasarkan prioritas, dan sisanya menjadi standby yang menerima replikasi real-time. Ketika active mati (termasuk saat restart) atau berhenti secara graceful, standby akan mengambil alih. Untuk detail cara kerjanya, lihat halaman Cara Kerja.
Di atas protokol biner yang sama, disediakan klien resmi untuk 8 bahasa: Rust, Java/Kotlin, JavaScript/TypeScript, Python, C#, Go, Ruby, C/C++. Setiap bahasa mengekspos API dengan cara yang natural bagi ekosistemnya masing-masing — misalnya bahasa dengan gaya async/await menggunakan API asinkron, sedangkan Go/Ruby/C menggunakan blocking + thread background. Protokolnya identik byte-per-byte di semua bahasa. Cara instalasi dan contoh per bahasa dapat dilihat di halaman Pustaka.