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.

Źródło: https://dev.to/therizwansaleem/designing-a-durable-event-sourced-analytics-platform-for-real-time-dashboards-58fd