Dlaczego stosować event sourcing?
Event Sourcing wymaga skupienia, gdyż podstawą zamodelowania świata są zachodzące w nim zdarzenia, które oddziałują na obiekty i relacje zachodzące między nimi. Event Sourcing wymaga zmiany myślenia, otwartości, elastyczności oraz umiejętności spojrzenia z innej perspektywy.
Przede wszystkim każdy event jest niezmienny, a to duże ułatwienie w trakcie pracy w wielowątkowym, złożonym środowisku. Poza tym zdarzenia są niewielkie, posiadają jedynie niezbędne dla danego eventu informacje. Oznacza to, że transakcje będą odbywały się sprawnie i szybko.
Jakie korzyści niesie ze sobą event sourcing?
- odtworzenie stanu aplikacji dla określonego czasu;
- łatwe skalowanie aplikacji. Jedną z zalet event sourcingu jest m.in. skalowalność – eventy można wygodnie przechowywać w bazach, z odpowiednią konfiguracją pod zapis. Odczyt zdarzeń może odbywać się z innej bazy;
- audytowalność, czyli kompletna „historia” zmian w agregatach. Pełna historia zmiany stanu agregatu jest zapisana. Nie trzeba wykonywać tabel audytowych. Szybko można też sprawdzić, dlaczego wystąpiły błędy;
- może znacznie ułatwić debugowanie;
- nie jest powiązany z konkretnym sposobem przechowywania danych;
- nie powinien być wolniejszy, a nawet może okazać się szybszy niż rozwiązania tradycyjne;
- może występować razem z CQRS i można go stosować wraz z architekturą portów oraz adapterów;
- łatwość dodawania nowych funkcjonalności – każdy handler jest dla poszczególnych eventów niezależny od pozostałych. Oznacza to, że każda funkcjonalność jest stworzona zgodnie z SRP.
Event Sourcing posiada dużo zalet, ale ma także pewne ograniczenia zależne od specyfiki konkretnego projektu. Więcej na temat tego systemu przeczytasz tutaj: https://www.euvic.com/pl/event-sourcing-bez-tajemnic/