Mentionsy Mentionsy
Better Software Design
Better Software Design

71. O doświadczeniach z EventSourcingiem w projekcie z Łukaszem Reszke

09.10.2023 ·1 godz 4 min · 15 rozdziałów

W greenfieldzie, który jeszcze nie dotarł do środowiska produkcyjnego zazwyczaj wszystko jest dość proste. Nawet przy zupełnej zmianie koncepcji w najgorszym razie można postawić bazę danych czy środowisko od zera. Jednak gdy system działa na produkcji, trzeba wprowadzać w nim głębsze zmiany, a do tabel w bazie przywiązana jest nie tylko aplikacja, sytuacja trochę się komplikuje. Dziś zapraszam na rozmowę o wprowadzaniu EventSourcingu do projektu, na przykładzie prawdziwego systemu obsługi cashflow.Moim gościem jest Łukasz Reszke, pracujący na co dzień właśnie przy projektach opartych o event-store i EventSourcing.W tym odcinku rozmawiamy z Łukaszem między innymi o:praktycznym zastosowaniu EventSourcingu w projekcie z problemami u klienta,wdrażaniu EventSourcingowego modułu do aplikacji z istniejącą relacyjną bazą i danymi,publikacji eventów do pozostałej części systemu i rodzajach eventów,odczytywaniu danych ze zdarzeń, strumieniach i linkowaniu do nich zdarzeń.Materiały dodatkowe:Working with RailsEventStore in Cashflow Management System, prezentacja Łukasza z konferencji wroc_love.rb 2023Eventsourcing Patterns: Migration Events in a Ghost Context, artykuł Mathiasa Verraesa o imporcie danych z systemów legacy do modelu opartego o zdarzeniaPatterns for Decoupling in Distributed Systems: Summary Event, kolejny artykuł Mathiasa Verraesa, tym razem o emitowaniu zdarzeń zbiorczychŁukasz@X, profil Łukasza na X/TwitterWspomniany w intro odcinek nr 10 z Andrzejem Krzywdą o refaktoryzacji The Arkency Way można znaleźć tutaj.

Wprowadzenie do rozmowy

Mariusz Gil przedstawia temat rozmowy i wprowadza gośća, Łukasz Reszke, pracującego w firmie ArkenC.

2:25
Praca z event sourcingiem

Łukasz opisuje swoje doświadczenia z event sourcingiem, w tym pierwsze zetknięcie z tą techniką.

3:39
Event sourcing w projekcie

Łukasz opisuje implementację event sourcinga w projekcie, w tym wykorzystanie JSONB do przechowywania zdarzeń.

3:16
Praktyczne aspekty event sourcinga

Łukasz podkreśla praktyczne aspekty implementacji event sourcinga, takie jak wydajność i zgodność z biznesem.

2:21
Przykłady zastosowania event sourcinga

Łukasz opisuje konkretny projekt, w którym event sourcing pomógł w zarządzaniu transakcjami i kategorią transakcji.

10:01
Analiza i poprawa modelu

Łukasz opisuje analizę modelu i wprowadzenie nowych zdarzeń, takich jak migration event i summary event.

6:27
Zakończenie rozmowy

Łukasz podsumowuje swoje doświadczenia z event sourcingiem i jego zastosowanie w projekcie.

1:48
Przykłady i zastosowania agregatów

Rozmówca podkreśla zastosowanie agregatów w projekcie, opisując różne podejścia do tworzenia i obsługiwania eventów.

3:57
Zmiany w systemie i read model

Rozmówca omawia zmiany w systemie, takie jak read model i jego zastosowanie w wyświetlaniu danych dla użytkowników.

2:35
Migration event i bezpieczeństwo danych

Rozmówca opisuje zastosowanie migration eventów i strategie chronienia danych podczas wprowadzania nowych agregatów.

7:41
Bitemporal event sourcing

Rozmówca omawia bitemporal event sourcing jako alternatywny sposób na zarządzanie agregatami i migration eventami.

8:39
Zakłócenia i bezpieczeństwo w implementacji

Rozmówca podkreśla znaczenie bezpiecznej i bez zakłóceń implementacji zmian w systemie.

11:46
Rekomendacje dotyczące event sourcingu

Rozmówca podaje swoje rekomendacje dotyczące event sourcingu na podstawie doświadczeń z projektem.

0:18
Zastosowania event sourcingu w praktyce

Rozmowa o zastosowaniach event sourcingu w praktyce, w tym anulowaniu subskrypcji i zapisywaniu feedbacku od użytkownika.

7:35
Rekomendacje i zasady projektowania

Porady dotyczące zastosowania event sourcingu, w tym refaktoryzacji bez testów, podziału strumieni i unikania blobów w eventach.

3:36

Rozdziały i streszczenia generowane automatycznie. Pełna transkrypcja nie jest publikowana — wyszukaj frazę, aby zobaczyć dopasowane fragmenty.