Lesson 110 - The Pros and Cons of Event Driven Architecture

preview_player
Показать описание
There seems to be a lot of hype and excitement recently about event-driven architecture. While there are many advantages of this architecture style, there are an equal number of disadvantages as well. In this lesson Mark Richards does a quick overview of event-driven architecture and discusses some of the advantages, disadvantages, and challenges of this popular architecture style.

Reference Links:

Рекомендации по теме
Комментарии
Автор

Another excellent lesson from a very knowledgeable and pragmatic professional. Thanks!

therealdecross
Автор

Hi Mark, I just saw this video. Although all is correct in this video, what is missing is to compare REST/synchronized communication with event-driven. When to use EDA and when REST? What type of combination is the best. As you said trade off is always there. I would say that REST is better for Micro services when 1 monolith app is broken up into several MS apps that still logically work on the same task but as a separate services and require data in a real-time with zero latency. Once they complete that work and they need to call and pass the information to the next micro-service (MS) that belongs to another logical group, they can use JMS and decoupled asynchronous communication. So services that use to be part of same monolith can keep synchronous communication between each other, while communicating with other services they use messaging. My take on this topic. As you said everything is trade off.
Greetings from Switzerland.

gagyboki
Автор

I bet many developers can rely to experience, when they tried to use events in their code to build logic and quickly realize the complexity it immediately creates. Even your own code with known scenarios quickly became unsupportable, error handling and debugging tools does not perform as good, then try to multiple this for real world cases, when requirements need to be clarified, politics during decision making withing your own team and external teams.

mykhailobasiuk
Автор

But man... how joyfull is to work with these kind of systems. I would also add a pretty complex tooling and the automation requirement as a downside. The investment just to set the development workflow is pretty high. I like to make the analogy with building your own workshop by hand. You shape the slabs, stick them together, etc, eventually you start to bring in your tools, you get familiar with those tools, develop the efficient workflow... and only then you see the dividends. Same with EDA. Just to build that workshop is pretty expensive, but once that is done... its pleasure to work with it. You can itterate over new ideas so quickly. You can shape the existing data in any new product you want just by replaying the topics. Etc.

Oswee
Автор

Love your videos, they’re helping me a lot with architecture knowledge! Thanks 🙏

MiguelSoaresPessoa
Автор

Can you do a video for all developers who has 10 years and more work experience and want to become Architect. How to sell yourself in the interview etc?

nilanjanroy
Автор

Love your videos! As an aside, you may want to isolate table vibration from your mic - my subwoofer makes your hand rests very dramatic events 😀

smccrory
Автор

Really liked your review of pros and cons! Thank you!

romanberdichevskii
Автор

Hi Mark,
Nice video.
I would say that error handling and workflow become interesting instead of complicated. 
One has to implement Choreography or Orchestration based SAGA patterns to handle them.
Vikas

softwarearchitecturematter
Автор

Excellent explanation. Can you please do video on milt-experience/omnichannel?

catchsivaram
Автор

Nice explanation friend. Have seen your channel, and its very organized and well explained. Suscribed. Saludos. 🤙

andresroca
Автор

Thanks for this wonderful video, Mark ! However, I disagree that "contract coupling" is a disadvantage for EDA. Inter services communication (this includes async. as well) is largely possible due to the Consumer and Provider agreeing to a pre-defined contract. It can be more disadvantageous to EDA than it would for microservices or any API based integration. Thoughts ?

agytjax
Автор

I am reading yr book. It's excellent. I hope you still have the strength to write another one after 5 years (assumed lifespan of an architecture textbook).

szeredaiakos
Автор

Is there any way to overcome disadvantage that will help alot

For event timing ? - maybe sending on same partiotion using common partition key
But that's not scalable in a sense then
Need help on this, please

venkateshwagh
Автор

Change management, versioning also gets much more complex. 
Next versions of code will need to consume all versions of events.
It means that bug fix is way more expensive than adding a new feature, especially it it was producing "buggy" events.

Eventually if is only good for event log processing - where consistency is in low value.

Ernestinis