HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

Greg Young — A Decade of DDD, CQRS, Event Sourcing

Domain-Driven Design Europe1 HN recommender · recommended in 1 month, 2016-2026
YouTube
190K views · 10 years ago · talk · evergreen

Greg Young, who coined CQRS, looks back on a decade of domain-driven design, CQRS and event sourcing at DDD Europe 2016. He discusses where event sourcing applies and how simple its core can be.

HN commenters cite it in event sourcing threads for Young's views on when to use it, including advice against cross-application event sourcing.

Software architecture & designDatabases & storageDistributed systems#eventsourcing#cqrs#domain-drivendesign#gregyoung#softwarearchitecture

4 comments from Hacker News

@austinthecoder2026 · in “My Workplace Disallows APIs”

I'm familiar with event sourcing. From what I understand, it's useful within bounded context/domain/app. I.e., from the outside you'd never know an app is event sourced (it's an implementation detail). Event sourcing is fantastic. My concern is with cross-app event sourcing: N copies of data/events across N apps. Greg Young strongly advises against this in this video: ▶ this video I have no idea how this came about. I think it's mainly driven by one engineer. I don't think it's related to any issues related to APIs in the past, in fact I'm not sure they've ever had APIs. There are numerous issues that have come up due to the nature of this system. These are mostly internal apps not used by that many people. Scale isn't an issue. I'm advocating for Events + API. With the idea that if you get an event that says "Widget 123 updated", you're free to hit the API to get whatever data you need.

CitesView on HN
@fetbaffe2019 · in “Event Sourcing is Hard”

It is worrying that a central figure to Event Sourcing & CQRS like Greg Young reduces the "framework" to a function, a pattern match & a left fold. Linked in the article ▶ this video

CitesView on HN
@karmajunkie2016 · in “Why Are People into Event Sourcing?”

See the presentation by Greg Young I linked to in another comment. One thing he talks about towards the end is the application for occasionally connected clients, which is one I'm looking to tackle myself in the next several months. ES may very well serve your needs, but I'd take a step back from the CRUD model and really think about the domain model. Something I do a lot of times when I'm looking at moving away from CRUD in an app is creating a bunch of domain-based command classes, which take over the persistence job, and move the app layer towards talking only to those commands. Still CRUD under the covers, but now there's an abstraction layer above it, and as you get a better delineation of boundaries you start to see where the services will fall out of it and what areas might benefit from ES the most. [1] ▶ this video

RecommendsView on HN
@karmajunkie2016 · in “Why Are People into Event Sourcing?”

> Moving everything to be an event completely throws this out the window. This is either an antipattern or unrelated to event-sourcing depending on how you read it. "Event sourced" means that state within a transaction boundary is built ONLY through events which are regarded as persistent and immutable; evented is the term I'll use for state which is built when events happen, when those events may or may not be recorded, and may happen before or after state is changed and are independent of the state change. If you meant "evented" then I would say that there are lots of message-based systems that aren't failing hard, and a lot that are, which says to me that there are patterns some of those systems are using to manage the nature of async, evented development that others aren't. If you mean "event sourcing" then the application of event-sourced data is neither an application architecture nor appropriate for all areas of your application[1,2]. If you were trying to apply event-sourcing in this way its not surprising you ran into problems with it. > Until then, my main advice is to make sure you have solved your system with a naive solution before you move on. It is important to really know and understand the problem domain you are applying ES to. Having a strategy to upgrade streams to new versions of your domain model is a good idea if you're applying ES to a business without a well-understood domain. However, it is very, very difficult to back into an ES implementation from a

CitesView on HN
Greg Young - CQRS and Event Sourcing - Code on the Beach 20141:03:48

Greg Young - CQRS and Event Sourcing - Code on the Beach 2014

Code on the Beach
170K views • 12 years ago
Event Sourcing • Greg Young • GOTO 201454:25

Event Sourcing • Greg Young • GOTO 2014

GOTO Conferences
102K views • 11 years ago
"Turning the database inside out with Apache Samza" by Martin Kleppmann47:43

"Turning the database inside out with Apache Samza" by Martin Kleppmann

Strange Loop Conference
205K views • 12 years ago
The Many Meanings of Event-Driven Architecture • Martin Fowler • GOTO 201750:06

The Many Meanings of Event-Driven Architecture • Martin Fowler • GOTO 2017

GOTO Conferences
677K views • 9 years ago
Introduction to NoSQL • Martin Fowler • GOTO 201254:52

Introduction to NoSQL • Martin Fowler • GOTO 2012

GOTO Conferences
1M views • 13 years ago
Rich Hickey: Deconstructing the Database1:06:24

Rich Hickey: Deconstructing the Database

InfoQ
106K views • 14 years ago
CRDTs and the Quest for Distributed Consistency43:39

CRDTs and the Quest for Distributed Consistency

InfoQ
68K views • 8 years ago
"I See What You Mean" by Peter Alvaro52:29

"I See What You Mean" by Peter Alvaro

Strange Loop Conference
59K views • 11 years ago
The past, present, and future of local-first - Martin Kleppmann (Local-First Conf)29:46

The past, present, and future of local-first - Martin Kleppmann (Local-First Conf)

Local-First Conf
17K views • 2 years ago
How We've Scaled Dropbox1:08:17

How We've Scaled Dropbox

Stanford
372K views • 14 years ago
Design Microservice Architectures the Right Way48:30

Design Microservice Architectures the Right Way

InfoQ
741K views • 8 years ago
Seattle Conference on Scalability: YouTube Scalability52:41

Seattle Conference on Scalability: YouTube Scalability

Google TechTalks
30K views • 19 years ago
Breakout Session Presented by Dan Robinson of Heap at PGConf Silicon Valley 201554:54

Breakout Session Presented by Dan Robinson of Heap at PGConf Silicon Valley 2015

Citus Data
14K views • 10 years ago
Domain Modeling Made Functional - Scott Wlaschin51:40

Domain Modeling Made Functional - Scott Wlaschin

NDC Conferences
71K views • 9 years ago
AWS re:Invent 2019: [REPEAT 1] Amazon DynamoDB deep dive: Advanced design patterns (DAT403-R1)59:13

AWS re:Invent 2019: [REPEAT 1] Amazon DynamoDB deep dive: Advanced design patterns (DAT403-R1)

AWS Events
115K views • 6 years ago
Google I/O 2012 - Go Concurrency Patterns51:27

Google I/O 2012 - Go Concurrency Patterns

Google for Developers
894K views • 14 years ago
"Transactions: myths, surprises and opportunities" by Martin Kleppmann41:08

"Transactions: myths, surprises and opportunities" by Martin Kleppmann

Strange Loop Conference
84K views • 11 years ago
AWS re:Invent 2014 | (SPOT302) Under the Covers of AWS: Its Core Distributed Systems46:15

AWS re:Invent 2014 | (SPOT302) Under the Covers of AWS: Its Core Distributed Systems

Amazon Web Services
10K views • 11 years ago
Four Languages from Forty Years Ago - Scott Wlaschin1:01:45

Four Languages from Forty Years Ago - Scott Wlaschin

NDC Conferences
33K views • 8 years ago
CRDTs: The Hard Parts1:10:10

CRDTs: The Hard Parts

Martin Kleppmann
90K views • 6 years ago