Fencing token (blokada rozproszona)
Liczba rosnąca przy każdym przyznaniu blokady; chroniony zasób odrzuca zapisy ze starszą liczbą, więc ktoś z nieaktualną blokadą nie narobi szkód.
Blokady rozproszone i wybór lidera pilnują, żeby zadanie cykliczne albo przekaźnik outboxa działał w jednej instancji. Ale posiadacz blokady może się zatrzymać, przez długie odśmiecanie pamięci albo czkawkę sieci, stracić blokadę, nie wiedząc o tym, i obudzić się, dalej pisząc, gdy pracuje już nowy posiadacz. Fencing token zamyka tę lukę: każde przyznanie dostaje wyższy numer, a baza albo magazyn odrzuca zapisy ze starym. Blokady zbudowane na samym cache z timeoutami tej gwarancji nie dają.
Powiązane hasła
- Split-brain: Dwie części systemu uważają, że to one mają prawdę, i niezależnie przyjmują zmiany, więc ich dane się rozjeżdżają.
- Blokowanie optymistyczne (optimistic locking): Wykrywanie konfliktujących edycji numerem wersji: zapis udaje się tylko wtedy, gdy rekord nie zmienił się od odczytu.
- Wzorzec outbox (transactional outbox): Zapisanie zdarzenia w tabeli outbox w tej samej transakcji bazy co sama zmiana, a potem osobne opublikowanie go w brokerze.
