W 25 odcinku DevTalk wracamy do tematu architektury. Tym razem moim Gościem jest Szymon Kulec: programista, blogger, prelegent i jeden z liderów Warszawskiej Grupy .NET. Na Twitterze: @scooletz.
Dyskutujemy o Event Driven Architecture. Z odcinka dowiecie się czym jest EDA, o jakich zdarzeniach mowa i jak z nich korzystać. Do tego: jak ma się do tego CQRS i Event Sourcing, na czym polega eventual consistency oraz jak obsługiwać/przetwarzać zdarzenia? I… oczywiście, wiele więcej :). Zapraszam do słuchania!
Montaż odcinka: Krzysztof Śmigiel.
Ważne adresy:
- zapisz się na newsletter
- zasubskrybuj w iTunes, Spotify lub przez RSS
- ściągnij odcinek w mp3
Linki:
- blog Szymona (http://blog.scooletz.com)
- Prezentacja Szymona i Tomasza Frydrychewicza na WG.NET (https://www.youtube.com/watch?v=a_MsaM89LDA)
- post Udi Dahan “Domain Events – Salvation” (http://udidahan.com/2009/06/14/domain-events-salvation/)
- mój blog: “Application Events” (http://www.maciejaniserowicz.com/2009/09/07/application-events/)
- Chad Fowler na DevDay 2015 “From Homogeneous Monolith to Radically Heterogeneous Microservices” (https://www.youtube.com/watch?v=v17DMiFHnB8)
- Lokad.CQRS Sample Project (http://lokad.github.io/lokad-cqrs/)
- powiązane odcinki DevTalk:
- O wiadomościach z Szymonem Pobiegą (http://devtalk.pl/2015/09/22-o-wiadomosciach-z-szymonem-pobiega/)
- CQRS with Udi Dahan (http://devtalk.pl/2015/04/14-cqrs-with-udi-dahan/)
- O mockach z Pawłem Klimczykiem (http://devtalk.pl/2015/03/12-o-mockach-z-pawlem-klimczykiem/)
- O Domain Driven Design ze Sławomirem Sobótką (http://devtalk.pl/2014/12/04-o-domain-driven-design-ze-slawomirem-sobotka/)
- O testach z Adamem Kosińskim (http://devtalk.pl/2014/11/03-o-testach-z-adamem-kosinskim/)
Muzyka wykorzystana w intro:
“Misuse” Kevin MacLeod (incompetech.com)
Licensed under Creative Commons: By Attribution 3.0
http://creativecommons.org/licenses/by/3.0/
O Event Driven Architecture z Szymonem Kulcem
Dziękujemy za dodanie artykułu – Trackback z dotnetomaniak.pl
Nareście! :) będzie co słuchać…
Bardzo fajny odcinek. Jednakże zawsze mnie nachodzą wątpliwości kiedy omawia się trywialne przypadki, a na trudniejszy przypadek nie podaje się rozwiązania. Przykładowo mamy taki Event driven system, eventual consistency i olewamy sytuację zgubienia kilku lajków miesięcznie. Wszystko działa super, system nie jest trywialny nie ma blokowania, itp, ale przychodzi biznes i mówi, że od teraz co 100tny like będzie generował zamówienie na milion dolarów. Jakie rozwiązanie przyjąć? :)
A czemu mamy coś gubić ? O_O
Aby nie gubić trzeba mocno pochylić się nad szczegółami. Bo czym innym są (często mylone) Event Broker i Event Bus – ten drugi dobrze zestawiony z transakcjami na każdym module pozwoli osiągnąć “kuloodporność”.
Zdziwiłem się, że nie padło słowo “reaktywny” / “reaktywne”. ;-) Bardzo trafne porównanie do inwersji kontroli! Komponenty wywołują się bezpośrednio vs komponent rozgłasza zdarzenie w ‘ciemno’ i każdy zainteresowany słucha.
Warto też w kontekście EDA odnieść się asynchroniczności – dużo naturalniej przychodzi niż w klasycznym podejściu ( np. RPC/REST).
Dzięki
@dariol
Eventual consistency nie oznacza ze cos sie zgubi, zawsze mozna to odnalezc ‘gdzies’ w systemie.
Przepraszam za ewentualną ignorancję, ale czy naprawdę jest taka diametralna różnica między Event Broker i Event Bus? Pozdrawiam