So You Want to Build An Event Driven System? - James Eastham - NDC London 2024

  Рет қаралды 15,741

NDC Conferences

NDC Conferences

2 ай бұрын

This talk was recorded at NDC London in London, England. #ndclondon #ndcconferences #developer #softwaredeveloper
Attend the next NDC conference near you:
ndcconferences.com
ndclondon.com/
Subscribe to our KZfaq channel and learn every day:
/‪@NDC‬
Follow our Social Media!
/ ndcconferences
/ ndc_conferences
/ ndc_conferences
#architecture #microservices #services
Making your system 'event driven' is a common consideration when building modern systems. Especially if these applications leverage serverless technologies. But what does that actually mean in the real world? What are the benefits of adopting this architecture style, what are the challenges and some of the tradeoffs?
In this session, you'll learn all about that and more with tips taken from building event driven systems in the real world. Starting from why, understanding what and plenty of practical things you can take away and use in your own applications. From the simple, through to some advanced integration patterns that this architecture style unlocks. to improve the resilience, extensibility and scalability of your systems.

Пікірлер: 21
@Dmitry-Moiseenko
@Dmitry-Moiseenko 18 күн бұрын
Thank you for a great talk!
@b5stephen
@b5stephen 2 ай бұрын
Enjoyed this thanks! Really made me think about some decisions we made in a system I recently worked where we didn’t grasp what was possible with EDS and so fell back into REST ways of thinking.
@hooleyt
@hooleyt Ай бұрын
Wow, this was incredibly thought-provoking and packed full of ideas, thankyou.
@guillermoarroyo9465
@guillermoarroyo9465 Ай бұрын
Great talk!
@parvagrawal1043
@parvagrawal1043 2 ай бұрын
Thanks for the great talk! Puts emphasis on what really drives the decisions when trying to build EDA
@Fikusiklol
@Fikusiklol Ай бұрын
Great talk! Thanks, James :)
@alexbeloff4618
@alexbeloff4618 Ай бұрын
Great talk, thanks!
@patrik.0
@patrik.0 Ай бұрын
Does your events include the whole aggregate root and everything within? If not, how do you handle out of order events?
@rngesus8057
@rngesus8057 2 ай бұрын
👌
@IgorKomarynskyi
@IgorKomarynskyi 2 ай бұрын
roontime! 😆I love it!
@joeedh
@joeedh 2 ай бұрын
Ok that quote at 51:15 is a bit much. It applies to a large number of software patterns most of which do that particulat thing better.
@wormB1
@wormB1 2 ай бұрын
27:44 @serverlessjames it would be good to explain in the future how the order processing service got delivery address id to bake it in the event payload (is it a sync http get request from order processing service to delivery service, view model composition in the ui or something else).
@serverlessjames
@serverlessjames 2 ай бұрын
Great feedback, thanks :)
@whosgotrythm
@whosgotrythm Ай бұрын
So how would the OrderProcessingService get the DelvieryId?
@whosgotrythm
@whosgotrythm Ай бұрын
Maybe capture the deliveryid in the session, so that OrderService knows the deliveryid?
@joeedh
@joeedh 2 ай бұрын
Deadlocks? Cycles?
@ralmslb
@ralmslb 2 ай бұрын
7:50 This reversal is still bad in my perspective. You are creating a single point of failure unnecessarily. Using this specific example, there is no reason why Delivery Service and Pick-Up service shouldn't be just dependent on the Kitchen service.
@serverlessjames
@serverlessjames 2 ай бұрын
Thanks for the feedback, I think this is actually just a problem with the diagram. Between each of the points of integration there would be some kind of event bus, so if the order service "failed" then all that would mean is that events aren't being published. This is good feedback though, Ill take it into future version of the talk. Thank you.
@ralmslb
@ralmslb 2 ай бұрын
​@@serverlessjames ​ To be honest, I liked the talk overall, specially the concept that each service doesn't need or should be aware of everything that is happening. My criticism is mainly on the architecture with this example, which I feel doesn't take fully advantage of an event driven system and has a "bottleneck" by design. And that is even if you put the EventHub in the middle, it's still events that you go back and forth between the Order Processing Service and the others. Using this scenario in question, my point is that "Order Processing Service" should handle the order and trigger a "new order" event when a new order has been received and that's it. After that, Kitchen is most likely listening to that so it starts cooking. Kitchen can than issue an event "CookingStarted" or whever which includes the expected duration in case other services needs to prepare in advance (such as calling a courier) and another event at the end "CookingFinished". "Order Processing Service" could be listening to these just to update a customer view or whatever, but "Delivery Service" and "Pick-Up" services would have listened directly "new order" to know the the delivery type and than just wait for the "CookingFinished" event. This way, you have a natural flow of responsibility, where even if "Order Processing Service" dies in the middle of an order, the Kitchen doesn't care anymore is already cooking, and the delivery services don't care either as all they care is for the kitchen to finish cooking :) I have low experience as a programmer, however I'm a but addicted to minimizing hard dependencies and allow for flexibility in my solutions, by using architectures such as the Onion Architecture :)
@serverlessjames
@serverlessjames 2 ай бұрын
Yeah I think you're absolutely right, and later in the talk I think I go through it in this same way. I'm going to refine the diagram for the next time I give a similar talk, so thankyou.
@alvaromoe
@alvaromoe 2 ай бұрын
While you are at it :) there's a typo in 10:20, should be "its" instead of "it's".
Пробую самое сладкое вещество во Вселенной
00:41
Кушать Хочу
Рет қаралды 4,1 МЛН
Универ. 13 лет спустя - ВСЕ СЕРИИ ПОДРЯД
9:07:11
Комедии 2023
Рет қаралды 4,9 МЛН
Они убрались очень быстро!
00:40
Аришнев
Рет қаралды 3,3 МЛН
Modular Monoliths Are The New Microservices
31:08
TaleLearnCode
Рет қаралды 22 М.
Technical Neglect - Kevlin Henney - NDC London 2024
1:07:18
NDC Conferences
Рет қаралды 17 М.
A Beginner's Guide to Event-Driven Architecture
37:28
Software Developer Diaries
Рет қаралды 4,8 М.
Don’t Build a Distributed Monolith - Jonathan "J." Tower - NDC London 2023
1:04:02
An Introduction to Residuality Theory - Barry O'Reilly - NDC London 2024
54:15
Deep Dive on LINQ with Stephen Toub
1:23:59
dotnet
Рет қаралды 52 М.
One To Three USB Convert
0:42
Edit Zone 1.8M views
Рет қаралды 440 М.
Apple watch hidden camera
0:34
_vector_
Рет қаралды 64 МЛН
Gizli Apple Watch Özelliği😱
0:14
Safak Novruz
Рет қаралды 2,3 МЛН
i love you subscriber ♥️ #iphone #iphonefold #shortvideo
0:14
Si pamerR
Рет қаралды 3,5 МЛН
Разряженный iPhone может больше Android
0:34