The Many Meanings of Event-Driven Architecture • Martin Fowler • GOTO 2017
Why Hacker News recommends it
Cited as a useful taxonomy for pinning down what an event-driven design actually is.
What it is
Martin Fowler's GOTO Chicago 2017 talk on the different things people mean by event-driven architecture. He identifies four patterns, including event notification and event-carried state transfer.
Recommended by 1 HN commenters across 1 different months, 2018 to 2022.
What Hacker News said
Recommends dathinab · 2020-03 · on “Data-Oriented Architecture”
I think that one was good: - [this video] I wasn't able to find any other talk I watched back then or any of the stuff I did read, but I then last time I looked into talks and reading material about this was ~2.5 Years ago and while a lot of new software and tooling was done since then the principles didn't change. Try some of the other GOTO; talks about it if you like listening to talks, they tend to be quite good. This was interesting as far as I remember but not what I was looking for: - [LINK]
Cites leoc · 2018-03 · on “Message-Oriented Programming (2017)”
As a first-class language feature this goes back at least to 1985 and Linda [LINK] and tuplespaces. (You'd know about Linda already if you'd read Concepts, Techniques, and Models of Computer Programming . Don't delay, read CTM today: [LINK] ) And here's a Martin Fowler talk about the practise of implementing it informally as a pattern or framework: [this video]
Cites leoc · 2018-03 · on “Message-Oriented Programming (2017)”
I think Fowler would describe the model in the article as more like "Event-carried State Transfer": [this video] .
Cites nivertech · 2022-08 · on “Ask HN: Are any new systems *not* event sourced and microservices?”
You're right about microservices, but IMO you're mistaken Event Sourcing (CQRS/ES)[1,2] with EDA (Event-Driven Architectures)[3] in general. There are many different types of EDAs. There are at least 3 relevant dimensions when choosing a Software Architecture: 1. complexity of the domain 2. scalability requirements 3. company stage / number of developers working on the same codebase Microservices are mostly solving #3, and to a lesser extent #2. They mostly solve the problem of too many developers blocking each other on a monolithic codebase (NOTE: monolithic doesn't mean non-modular). Event Sourcing and friends (DDD, CQRS, EventStorming, etc.) are mostly solving #1. It's also technology/ven