Portal biznesowy – Wiadomości / Informacje / Porady
Technologie

Event Sourcing – co to jest?

euvic buzz

Event Sourcing to metoda tworzenia systemów, bazując na przetwarzaniu zdarzeń. W branży IT określa się ją jako „buzzword”. Dowiedz się więcej na ten temat, a także poznaj korzyści, jakie niesie ze sobą Event Sourcing.

Dzięki zaimplementowaniu wzorca można zyskać gwarancję, że właściwości danego obiektu nie ulegną zmianie bez konkretnego działania, który został wcześniej uwzględniony w modelu domeny. 

Event Sourcing to ostatnio popularny trend i często używane hasło. Na jego temat nagromadziło się wiele faktów, ale też różnych opinii oraz mitów. Warto powiedzieć o nim więcej. Sprawdź, co to oznacza w praktyce, czyli jakie zalety ma ten sposób tworzenia systemów.

Co można zyskać, dzięki Event Sourcingowi?

  • łatwe skalowanie aplikacji, jasny podział na Command i Query oraz procesy asynchroniczne;
  • możliwość odtworzenia stanu aplikacji dla określonego czasu;
  • audytowalność, czyli dokładny zapis zmian w agregatach.

Fakty i opinie o Event Sourcingu

To trudna i skomplikowana metoda. Event Sourcing jest inny i wymaga dobrego poznania, otwartości do zmiany myślenia i umiejętności spojrzenia z innej perspektywy. By zrozumieć i odpowiednio zaprojektować coś w tym systemie, trzeba bazować na zdarzeniach, które wpływają w nim na inne obiekty, a także dostrzegać i rozumieć zachodzące między nimi relacje. Kluczem do sukcesu jest zrozumienie procesów biznesowych. Procesy biznesowe to również pewien rodzaj „storytelling”.

Event Sourcing jest niepraktyczny. Procesy biznesowe także można modelować jako zdarzenia. To ciekawe zajecie i bardzo praktyczne, mimo mitom o niskiej przydatności tej metody. Event Sourcing pozwala maksymalnie uprościć komunikację projektową.

Event Sourcing wymaga wykorzystania wielu innych narzędzi. Według obiegowych opinii trzeba stosować także Domain Driven Design, CQRS i innych wzorców. Metodyki te świetnie się uzupełniają u ze sobą współgrają, ale nie trzeba z nich korzystać obowiązkowo. Natomiast na pewno warto, bo wszystkie te narzędzia mają wspólny cel główny – zrozumienie procesów biznesowych i ich wierne zamodelowanie w oprogramowaniu. To dzięki nim systemy informatyczne są efektywne, wydajne i proste w utrzymaniu., 

Niezbędne są dwie bazy. Event Sourcing nie wymaga określonego sposobu przechowywania danych. Prawdą jest w nim log zdarzeń. Jedynie dokładny ich opis zdarzeń daje możliwość zdobycia aktualnych danych użytkownika. Dwie bazy nie są must have, ale mogą być ułatwieniem i można ich używać. 

Trzeba zatem aplikować jedno po drugim zdarzenie – to tzw. agregacja. Efektem jest tzw. projekcja, czyli stan obiektu. Pojedyncze zdarzenia zapisuje się jako osobny wiersz w tabeli „Zdarzenia”, z kolei projekcję w tabeli relacyjnej. Zapewnia to czytelność, rozdział logiczny oraz duże możliwości optymalizacyjne.