Niezawodne dostarczanie zdarzeń w Apache Kafka oparte o ponawianie i DLQ
Jacek Grobelny, Tech Lead @ Consdata
Agenda
Consdata
Santander Poczta
Pierwsza implementacja
Problemy
Refactoring do Event Sourcingu
Problemy
Live Demo
Wnioski
<CONSDATA >
Santander Poczta
poczta retail/corporate
5 mln kont
500 mln wiadomości
operacje masowe
Problemy pierwszej implementacji
komunikacja synchroniczna
mało elastyczne API
mnogość przypadków - wysyłka masowa
Wolumen danych
Event Sourcing to the Rescue!
Czym jest Event Sourcing
Event Store vs State Store
Revert do dowolnego momentu
Zmiana architektury
Wszystkie procesy dotyczące wiadomości w naszym systemie to eventy!
Mamy state store (SOLR)
Wystarczy wybrać event store :)
Apache Kafka
Referencje
Wydajność
Wolumen danych
Dumb Broker/Smart Consumer
Wyzwania
Ostateczna spójność (idempotencja)
Zwiększenie złozoności (serwery, monitoring)
Ręczne aktualizacje na bazie
Obsługa błędów
Obsługa błędów
Strategia #1
BRAK
Obsługa błędów
Strategia #2
Ponawianie
Obsługa błędów
Strategia #3
independent events
topic external
-> topic external retry(loop)
->topic external dlq
Obsługa błędów
Strategia #4
dependent events
topic final(loop)
-> topic final dlq
LIVE DEMO
Kolejne kroki
Wnioski końcowe
Minimalna konfiguracja 3xBroker, 3xZoo
Obsługa błędów
Monitoring
Dziękuję
https://ynleborg.github.io
https://blog.consdata.tech/
@ynleborg
Q&A
Made with Slides.com