Files
awesome-awesomeness/html/eventdrivenarchitecture.html
2025-07-18 22:22:32 +02:00

176 lines
8.7 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- omit in toc -->
<h1 id="awesome-event-driven-architecture-awesome">Awesome Event-Driven
Architecture <a href="https://awesome.re"><img
src="https://awesome.re/badge.svg" alt="Awesome" /></a></h1>
<p>A curated list of awesome articles and resources to learn about
event-driven architecture.</p>
<p>Event-driven architecture is a software architecture approach where
services collaborate by publishing and subscribing to events. This
eliminates runtime coupling of services.</p>
<!-- omit in toc -->
<h2 id="contents">Contents</h2>
<ul>
<li><a href="#-articles">📕 Articles</a>
<ul>
<li><a href="#foundational">Foundational</a></li>
<li><a href="#experience-reports-and-practicalities">Experience Reports
And Practicalities</a></li>
</ul></li>
<li><a href="#-videos">📺 Videos</a>
<ul>
<li><a href="#foundational-1">Foundational</a></li>
<li><a href="#experience-reports-and-practicalities-1">Experience
Reports And Practicalities</a></li>
</ul></li>
<li><a href="#related-topics">Related Topics</a></li>
</ul>
<h2 id="articles">📕 Articles</h2>
<h3 id="foundational">Foundational</h3>
<ul>
<li><a
href="https://medium.com/russmiles/going-events-first-for-microservices-with-event-storming-and-ddd-8614437486f0">Going
“Events-First” for Microservices with Event Storming and DDD</a> - By
Russ Miles, October 2016. <em>“It is <strong>not the things</strong>
that matter in early stages of design - <strong>it is the things that
happen</strong>.”</em></li>
<li><a
href="https://hackernoon.com/events-as-first-class-citizens-8633e8479493?gi=5ecff3301dfa">Events
As First-Class Citizens</a> - By Randy Shoup, January 2018. Focusses on
the most important part of EDA: The actual events.</li>
<li><a
href="https://www.confluent.io/blog/journey-to-event-driven-part-1-why-event-first-thinking-changes-everything/">Why
Event-First Programming Changes Everything</a> - By Neil Avery, January
2019. Somewhat lengthy article thats great in painting the “big
picture”.</li>
<li><a
href="https://medium.com/microservicegeeks/introduction-to-event-driven-architecture-e94ef442d824">Introduction
to Event-Driven Architecture</a> - By Kacey Bui, February 2021. Good
overview of the basics.</li>
</ul>
<h3 id="experience-reports-and-practicalities">Experience Reports And
Practicalities</h3>
<ul>
<li><a
href="https://barryosull.com/blog/event-granularity-modelling-events-in-event-driven-applications/">Event
Granularity: Modelling events in event driven applications</a> - By
Barry OSullivan, December 2017. About finding the right granularity for
events.<br />
</li>
<li><a
href="https://blog.frankdejonge.nl/the-different-types-of-events-in-event-driven-systems/">The
different types of events in event-driven systems</a> - By Frank de
Jonge, February 2022. There are different approaches to classifying
events - this is a very good one.</li>
<li><a
href="https://blog.frankdejonge.nl/reliable-event-dispatching-using-a-transactional-outbox/">Reliable
event dispatching using a transactional outbox</a> - By Frank de Jonge,
February 2022. Transactional outbox is a crucial pattern for services
basing their persistence on CRUD/RDBMS.</li>
<li><a
href="https://medium.com/mcdonalds-technical-blog/behind-the-scenes-mcdonalds-event-driven-architecture-51a6542c0d86">Behind
the scenes: McDonalds event-driven architecture</a> - From the
McDonalds tech blog, August 2022. Not very detailed, but an easily
digestible case study about event-driven architecture at scale. Listing
this here is not an endorsement of their products. Theres a <a
href="https://medium.com/mcdonalds-technical-blog/mcdonalds-event-driven-architecture-the-data-journey-and-how-it-works-4591d108821f">second
part</a>, too.</li>
<li><a
href="https://medium.com/wix-engineering/event-driven-architecture-5-pitfalls-to-avoid-b3ebf885bdb1">Event
Driven Architecture — 5 Pitfalls to Avoid</a> - By Natan Silnitsky,
August 2022. Especially when you only just get started, check this to
spare you some frustration later. You might also want to check the
“Further Reading” section at the end.</li>
<li><a
href="https://medium.com/@kris_22373/5-pitfalls-to-avoid-when-implementing-an-event-driven-architecture-7fb04d7fa7ca">5
pitfalls to avoid when implementing an Event-Driven Architecture</a> -
By Kris Van Vlaenderen, January 2024. Sounds very similar to the
previous one. But its not a case of duplicate events - its actually 5
different pieces of advice.</li>
</ul>
<h2 id="videos">📺 Videos</h2>
<h3 id="foundational-1">Foundational</h3>
<ul>
<li><a
href="https://www.youtube.com/watch?v=SKXS2h3MdPM&amp;list=PLXstpDPZ7AtX78V_JYUJX7z8RjdcB9HQq">Core
Decisions in Event-Driven Architecture</a> - By Duana Stanley, October
2019. Overall a great talk, definitely worth watching. Below are some
minor issues I have with it.
<ul>
<li>The advice to use ids in events to refer to other entities is not
wrong, but needs deeper discussion.</li>
<li>I dont like the term “command events”, something is either a
command or an event.</li>
<li>In the end she hints at Kafka as an event store, I dont think
thats good idea.</li>
</ul></li>
<li><a
href="https://www.youtube.com/watch?v=A_mstzRGfIE&amp;list=PLXstpDPZ7AtX78V_JYUJX7z8RjdcB9HQq">Event-Driven
Architectures Done Right</a> - By Tim Berglund, May 2021. Good overview,
clear presentation.</li>
<li><a
href="https://www.youtube.com/watch?v=9guR3CBTG44&amp;list=PLXstpDPZ7AtX78V_JYUJX7z8RjdcB9HQq">Event
Driven Architecture &amp; Governance in Action</a> - By Wim Debreuck,
June 2023. A talk that goes beyond the technical fundamentals, into the
architecture and design process of event-driven applications. The shown
approach might not be universal, but provides important insights. I
especially like the clarity around business events.</li>
<li><a
href="https://www.youtube.com/watch?v=Fb_0UOD2X2I&amp;list=PLXstpDPZ7AtX78V_JYUJX7z8RjdcB9HQq">Event-Driven
Architecture Explained in 15 Minutes</a> - By Dave Farley, July 2024.
Watching videos by Dave Farley is always time well spent, and his short
take on event-driven architecture is no exception.</li>
</ul>
<h3 id="experience-reports-and-practicalities-1">Experience Reports And
Practicalities</h3>
<ul>
<li><a
href="https://www.youtube.com/watch?v=wM-dTroS0FA&amp;t=493s&amp;list=PLXstpDPZ7AtX78V_JYUJX7z8RjdcB9HQq">EDA
in Practice: Building an eCommerce Platform at Cinch</a> - By Toli
Apostolidis, September 2022. You can ignore the first 8 minutes and 15
seconds (in fact the link will skip them), they are mostly promotion for
AWS. But from there on follows a good talk on real-world experiences
with event-driven architecture.</li>
<li><a
href="https://www.youtube.com/watch?v=1dWJO31wpV8&amp;list=PLXstpDPZ7AtX78V_JYUJX7z8RjdcB9HQq">Shifting
Gears: From Events to Event-Driven</a> - By Ryan Cormack, May 2024. He
tells the story of Motorways journey to event driven, and also includes
a lot of foundational aspects.</li>
</ul>
<h2 id="related-topics">Related Topics</h2>
<ul>
<li><a
href="https://www.youtube.com/watch?v=1KlQVhVYiFU&amp;list=PLXstpDPZ7AtX78V_JYUJX7z8RjdcB9HQq">Event
Sourcing What, Why &amp; How</a> - By Anita Kvamme, June 2024. While
also event based, <em>Event Sourcing</em> is not the same as
<em>Event-Driven Architecture</em>. They complement each other well, but
you can also use either without the other. Thankfully, this great
overview of Event Sourcing makes that clear at the very start.</li>
</ul>
<!-- omit in toc -->
<h2 id="contributing">Contributing</h2>
<p>Please note that the list is <strong>highly curated</strong>. The
aspiration is to assemble resources that excel in providing clarity
around the principles and terminology. As a whole, the collection should
provide a comprehensive and consistent overview of the topic. In the
spirit of the Awesome Lists <a
href="https://github.com/sindresorhus/awesome/blob/main/pull_request_template.md">list
of guidelines</a>: <em>“Awesome lists are curations of the best, not
everything.”</em></p>
<p>Of course if you think something that belongs in the list is missing,
you can suggest its inclusion in an <a
href="https://github.com/reactivesystems-eu/awesome-event-driven-architecture/issues">issue</a>
or <a
href="https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request">pull
request</a>.</p>
<!-- omit in toc -->
<h2 id="footnotes">Footnotes</h2>
<p>To be updated about changes, follow me on <a
href="https://mastodon.social/@lutzhuehnken">Mastodon</a>, <a
href="https://bsky.app/profile/huehnken.de">Bluesky</a> or <a
href="https://de.linkedin.com/in/lutzh">LinkedIn</a>. If you find this
interesting, you might also like my <a
href="https://www.reactivesystems.eu/">blog</a>.</p>
<p><a
href="https://github.com/lutzh/awesome-event-driven-architecture">eventdrivenarchitecture.md
Github</a></p>