Projektowanie trwałych analityk w czasie rzeczywistym
Potrzebujesz dashboardów z aktualnymi danymi. Muszą one zachowywać dokładność wraz z rozwojem Twojej skali. Event sourcing rozwiązuje ten problem.
Przebieg procesu:
- Producenci: Usługi wysyłają zdarzenia domenowe.
- Szyna zdarzeń (Event Bus): Kafka lub Kinesis przechowuje zdarzenia w logu.
- Procesory: Odczytują log i aktualizują modele odczytu (read models).
- Modele odczytu (Read Models): Postgres lub Redis przechowuje końcowe metryki.
- Query API: Twój dashboard pobiera dane właśnie stąd.
Kluczowe zasady projektowania:
- Spraw, aby zdarzenia były niezmienne (immutable). Nigdy nie aktualizuj zdarzenia.
- Używaj kluczy idempotencji. Zapobiega to powstawaniu duplikatów danych.
- Wersjonuj schematy. Zapobiega to awariom systemu.
- Używaj deterministycznych projekcji. Zapewnia to spójność danych.
Jak to zbudować:
- Zidentyfikuj kluczowe zdarzenia.
- Wybierz narzędzia do przechowywania danych.
- Zbuduj wstępne projekcje dla metryk.
- Wdróż mechanizm deduplikacji.
- Utwórz rejestr schematów (schema registry).
- Monitoruj opóźnienie zdarzeń (event lag).
Taka konfiguracja pozwala na skalowanie i audytowanie danych. Zachowujesz pełną historię każdej zmiany.