Ketika klien memperoleh (A) sebuah key, server merespons dengan salah satu dari tiga kemungkinan berikut.
| Status key | Aksi server | Respons |
|---|---|---|
| Belum terdaftar | Segera didaftarkan (expire = now + lease), token diterbitkan | A + token + key |
| Terdaftar + sudah kedaluwarsa | Diperbarui (now + lease), token baru diterbitkan | A + token + key |
| Terdaftar + masih valid (sedang dipakai) | Didaftarkan ke antrean, respons ditunda | A saat dilepas/kedaluwarsa, T jika wait terlampaui |
R), lock langsung diserahkan ke yang paling depan dalam antrean — tanpa kompetisi ulang, langsung diberikan bersama token baru.lease adalah jaring pengaman. Meskipun klien mati atau lupa melepaskan, setelah waktu lease berlalu, server akan otomatis menarik kembali key tersebut dan dapat menyerahkannya ke penunggu berikutnya. Karena itu, terlepas dari alur pelepasan normal, sebaiknya lease diset cukup longgar, namun tetap dengan nilai yang tidak terlalu lama mengikat resource jika klien mati.wait adalah batas atas waktu tunggu perolehan. Jika 0 berarti menunggu tanpa batas, selain itu jika tidak diperoleh dalam waktu (detik) tersebut, server akan menyerah dan merespons dengan T (timeout) — berakhir tanpa grant, sehingga lock tidak akan bocor.token yang disertakan dalam respons A adalah u64 yang selalu bertambah secara monoton untuk grant tersebut. Setiap kali diperoleh, diterbitkan nilai yang lebih besar dari token mana pun sebelumnya. Bahkan saat terjadi failover, node yang baru menjadi active akan melanjutkan dari nilai yang lebih besar dari token maksimum yang diterima lewat replikasi (suksesi) — sehingga token terus bertambah di seluruh cluster.
Jika resource yang ingin dilindungi (akun, file, pesanan, dll.) cukup memvalidasi "apakah token yang dipegang sekarang lebih besar dari token terakhir yang terlihat", maka klien yang terlambat bangun setelah lease kedaluwarsa dapat ditolak aksesnya karena membawa token rendah yang sudah tidak berlaku. Berkat ini, keamanan tetap terjaga meskipun server lock tidak sepenuhnya konsisten di setiap saat.
Klien-klien resmi secara umum berperilaku sebagai berikut (detail API per bahasa lihat Pustaka).
lease yang akan menariknya kembali, tetapi ini untuk menyerahkannya ke penunggu lain lebih cepat sebelum itu).peers adalah prioritas promosi (paling depan adalah prioritas tertinggi). Di antara node yang hidup, satu dengan prioritas tertinggi menjadi active, sisanya menjadi standby yang menerima replikasi status secara real-time.M) ke alamat active dan berpindah ke sana.Ctrl+C), active terlebih dahulu menyerahkan promosi ke penerus (handoff), lalu mengarahkan ulang klien, sehingga kekosongan active diminimalkan.Metode promosi ini bukan berbasis kuorum (voting mayoritas). Karena itu jumlah node ganjil/genap tidak penting, dan layanan tetap terjaga selama minimal satu node hidup.
| Jumlah server | Tanpa downtime | Toleransi kegagalan simultan | Catatan |
|---|---|---|---|
| 1 | ✗ | — | Paling cepat. Terjadi jeda singkat saat restart |
| 2 | ✓ | 1 | Konfigurasi minimum untuk tanpa downtime. Cukup untuk sebagian besar kasus |
| 3 | ✓ | 2 | Redundansi tetap terjaga meski satu node sedang dalam perawatan |
| 4+ | ✓ | N−1 | Hanya menambah biaya propagasi — tidak direkomendasikan |
Karena promosi berbasis prioritas bukanlah konsensus, pada saat partisi jaringan kedua sisi bisa sejenak menjadi active secara bersamaan, dan karena sifat replikasi asinkron, sebagian grant bisa hilang pada momen failover. Artinya, saling mengeksklusi tidak dijamin 100% pada rentang failover/partisi. Jika dibutuhkan jaminan yang kuat, implementasikan agar resource yang dilindungi memvalidasi fencing token yang telah dijelaskan sebelumnya — dengan menolak token lama (lebih kecil), keamanan tetap terjaga meskipun server lock tidak sepenuhnya konsisten.