Wzorce projektowe stosowane w architekturze sterowanej zdarzeniami
Opublikowano: 2026-01-24
Event sourcing
Event sourcing to podejście, w którym stan systemu nie jest przechowywany bezpośrednio, lecz odtwarzany na podstawie sekwencji zdarzeń, które doprowadziły do jego obecnej postaci. Zamiast nadpisywać rekord w bazie danych, system zapisuje kolejne zdarzenia opisujące zmiany, a aktualny stan wylicza się poprzez ich odtworzenie.
CQRS — rozdzielenie zapisu i odczytu
Command Query Responsibility Segregation zakłada rozdzielenie modelu odpowiedzialnego za zapis danych (obsługę poleceń) od modelu odpowiedzialnego za ich odczyt. W architekturze event-driven wzorzec ten często współistnieje z event sourcing — zdarzenia zapisane w strumieniu aktualizują odrębne, zoptymalizowane pod kątem odczytu widoki danych.
Zalety rozdzielenia modeli
Rozdzielenie zapisu i odczytu pozwala niezależnie skalować obie ścieżki oraz dostosować strukturę danych odczytowych do konkretnych potrzeb prezentacyjnych, bez kompromisów wynikających z jednego uniwersalnego modelu danych.
Wzorzec saga w transakcjach rozproszonych
Gdy pojedynczy proces biznesowy obejmuje kilka niezależnych usług, klasyczna transakcja bazodanowa przestaje być możliwa do zastosowania. Wzorzec saga rozkłada taki proces na sekwencję lokalnych transakcji, z których każda publikuje zdarzenie wyzwalające kolejny krok, a w razie niepowodzenia uruchamiane są kroki kompensacyjne cofające wcześniejsze zmiany.
Kiedy stosować dany wzorzec
Event sourcing sprawdza się tam, gdzie istotna jest pełna historia zmian i możliwość audytu, CQRS — gdy obciążenie odczytowe i zapisowe znacząco się różnią, a saga — wszędzie tam, gdzie proces biznesowy rozciąga się na wiele niezależnie wdrażanych usług.