Optymalizacja w Event Sourcingu
Problemy z wydajnością
Dużo zdarzeń per agregat
Duże zdarzenia
Dużo zapisów w ciągu krótkiego czasu
Dużo zdarzeń w bazie
Dużo zdarzeń per agregat
Przykładowe modele
Polisa
Koszyk
Draft model
Rachunek rozliczeniowy
Snapshot techniczny
Utworzenie zdarzenia aplikującego złączony stan zdarzeń snapshotowanych, by zmniejszyć ilość sapshotów w bazie danych.
Snapshot domenowy
Koniec miesiąca może automatycznie tworzyć snapshot, jeśli istnieje taka domena.
Może to być naturalny snapshot w naszych agregatach.
Duże zdarzenia
Dokumenty
Formularze
CMSy / CRMy
Rozbijanie
Task based UI
Weryfikacja niezmienników
Szukanie elementów składowych
Operowanie na diff-ach
Zamiast snapshot po snapshocie - robimy diff, czyli która linijka została zmieniona.
Dużo zapisów w ciągu krótkiego czasu
Przetwarzanie transakcji giełdowych
Import danych
Internet of Things
Rozwiązaniem jest trzymanie agregatu w pamięci.
Model aktorów.
Cache zdarzeń + sticky-session.
Cache snapshotu + sticky-session.
Dużo zdarzeń w bazie
Co będzie za 5-10 lat?
Mnóstwo małych operacji
Wielu użytkowników
Cold storage
Przeniesienie starych, nie używanych danych do bazy, w której zachowamy informacje, ale nie jest normalnie używana.
Kompaktowanie
Usunięcie niepotrzebnych danych / spłaszczenie niepotrzebnych danych.
Na każdy problem istnieje sensowne rozwiązanie.
W wielu wypadkach snapshoty mogą w ogóle nie być potrzebne.
Last updated
Was this helpful?