Masz dosyć systemów, które sypią się jak domek z kart, gdy tylko jeden serwis złapie zadyszkę? Czas przestać trzymać usługi „za rękę” przez HTTP i pozwolić im żyć własnym życiem. Event-Driven Architecture (EDA) to przejście z trybu rozkazującego na reagowanie na fakty, więc zamiast mówić każdemu, co ma robić, po prostu ogłaszasz, co się stało.
W tym odcinku o EDA mówił Tomasz Stolarczyk, programista i konsultant z Arkency, specjalizujący się w ratowaniu systemów legacy. Po latach pracy z Javą, obecnie rozwija złożone systemy w Ruby. Jest współtwórcą i aktywnym developerem Rails Event Store: otwartoźródłowego narzędzia do obsługi zdarzeń i Event Sourcingu, na którym bazuje wiele jego wdrożeń. Tomasz opowiada, jak nie zgubić się w świecie bez stacktrace’ów i dlaczego programiści mogą czerpać garściami z EDA, nawet jeśli nie chcą (lub nie potrzebują) wdrażać pełnego Event Sourcingu.
Z tego odcinka dowiesz się:
- Czym charakteryzuje się Event-Driven Architecture i jak wytłumaczyć to nowej osobie w zespole;
- Czym różni się prawdziwe EDA od zwykłego „strzelania eventami” po akcji użytkownika;
- Co zapewnia wzorzec Outbox;
- Chude czy grube eventy i co wysłać w świat, żeby nie „zabić” bazy subskrybenta;
- Kiedy postawić na swobodną choreografię usług, a kiedy wprowadzić Process Managera;
- Jak działa komunikacja asynchroniczna w EDA;
- Jakie wyzwania niesie debugowanie systemu bez stacktrace’ów;
- Dlaczego Rails Event Store ułatwia monitoring systemów eventowych;
- Na czym polega magia Event Sourcingu i jak odtworzyć stan systemu sprzed pół roku;
- Jak przebudowywać modele odczytu z historycznych eventów;
- Jak wprowadzić eventy do starego kodu, korzystając z techniki Event Stormingu.
A teraz… PLAY!
Ważne adresy:
- Spotify
- Apple Podcasts
- RSS
- ściągnij odcinek w mp3
Linki:
- Nagranie The Many Meanings of Event-Driven Architecture, Martin Fowler,
- Rails Event Store,
- Artykuły Tomka na devstyle,
- DevTalk #108 – O Programowaniu Obiektowym z Tomaszem Stolarczykiem,
- DevTalk #110 – O Event Storming z Mariuszem Gil,
- epizodyczną rolę Tomasza można obejrzeć w Domain-Driven Design, a jego mini-kurs o Feature Flags znajdziecie tutaj!
Muzyka wykorzystana w intro: “Misuse” Kevin MacLeod (incompetech.com)
Licensed under
Creative Commons: By Attribution 3.0














