Event sourcing
Zapisywanie każdej zmiany jako zdarzenia w dzienniku, do którego tylko się dopisuje, i odtwarzanie bieżącego stanu przez ich odtworzenie, zamiast trzymać tylko ostatni stan.
Konto to nie wiersz z saldem, tylko lista: założone, wpłata, wypłata. Dostajesz pełny ślad zmian i możesz budować nowe raporty, odtwarzając historię. Koszty zostają na całe życie systemu: stare zdarzenia muszą działać, gdy zmienia się ich kształt, długie historie wymagają snapshotów, a każde zapytanie potrzebuje projekcji. Dołożenie go obok istniejącej bazy zwykle kończy się dwoma źródłami prawdy, które się nie zgadzają (split-brain).
Powiązane hasła
- CQRS (rozdzielenie zapisu i odczytu): Podział systemu na stronę zapisu, która zmienia dane, i osobną stronę odczytu ułożoną pod zapytania, synchronizowane zdarzeniami.
- Split-brain: Dwie części systemu uważają, że to one mają prawdę, i niezależnie przyjmują zmiany, więc ich dane się rozjeżdżają.
- WAL (write-ahead log): Dziennik bazy danych z każdą zmianą, zapisywany przed plikami danych, dzięki któremu działa odzyskiwanie po awarii, replikacja i odtwarzanie do punktu w czasie.
