Idempotentność
Żądanie płatności nie dostaje odpowiedzi na czas, aplikacja ponawia próbę i klient płaci dwa razy. Wiadomości powtarzają się z wielu powodów: ponowień, restartów brokera, przełączenia na zapasowy serwer. Nie zapobiegniesz temu, więc kod musi sprawić, żeby powtórzona wiadomość niczego nie psuła. Ta właściwość to idempotentność. Dowiesz się, kiedy twoja logika już ją ma, a kiedy duplikaty trzeba świadomie wykrywać.
Pierwszy artykuł dotyczy obsługi komend: które operacje można bezpiecznie powtórzyć i jak odrzucić duplikat tym samym sprawdzeniem wersji, które chroni przed równoczesną edycją. Drugi wyjaśnia, skąd biorą się duplikaty i w którym miejscu systemu można je odfiltrować. Trzeci stosuje te same pomysły do aktualizacji read modeli.
Zacznij od pierwszego.

Idempotent Command Handling
2024-11-15“Is your command handling idempotent?” Sounds like a douchebag question to ask. Actually, that’s not a question but a statement that we want to sound smart. Maybe a…
Deduplication in Distributed Systems: Myths, Realities, and Practical Solutions
2024-11-25Last week, we discussed how to use queuing to guarantee idempotency. What’s idempotency? It’s when we ensure that no matter how often we run the same operation, we’ll…
Dealing with Eventual Consistency and Idempotency in MongoDB projections
2021-11-10Auditability, diagnostics, time travelling are usually the first mentioned features when speaking about Event Sourcing. All of them are great, but to me, projections are…