How to model event-sourced systems efficiently - Oskar Dudycz - DDD Europe 2022

  Рет қаралды 12,516

Domain-Driven Design Europe

Domain-Driven Design Europe

Күн бұрын

Domain-Driven Design Europe 2022
dddeurope.com - / ddd_eu - newsletter.ddd... / domain-driven-design-e...
Organised by Aardling (aardling.eu/)
"Keep your streams short! Or how to model event-sourced systems efficiently - Oskar Dudycz"
In event-sourced systems, no data is lost. We record new facts after each business operation. That's a huge benefit but also a challenge. At some point, we realise that we have too many events in our streams. That causes a whole variety of issues: operational, performance, versioning, but also cognitive load and blurring the entire picture. In this talk, you'll learn how to deal with the temporal aspect of our system and why it's essential to keep your streams short. You'll learn strategies and techniques to model your domain into streams efficiently. Thanks to that, you'll learn to efficiently create and maintain your event-sourced system, avoiding common pitfalls.
I'm a developer, technical team leader, and architect. I started a career before StackOverflow existed. For over 14 years, I've been creating systems close to the business process. I believe that Event-Driven Architectures and Event Sourcing are great ways to achieve that.
I'm an active open-source developer and one of the Marten library maintainers. I'm sharing my journey and findings on my blog event-driven.io and practical samples at github.com/osk....

Пікірлер: 28
@andreas-grimm
@andreas-grimm Жыл бұрын
Amazing talk, and beautifully visualized 👍
@event-driven
@event-driven Жыл бұрын
Thank you a lot! I'm glad that you noticed the work put into the slides ❤
@vladyslavkarpenko9372
@vladyslavkarpenko9372 Жыл бұрын
Thanks to Oskar and DDD Europe for the insightful lecture. There's a useful recommendations.
@event-driven
@event-driven Жыл бұрын
Thank you Vladyslav, I'm super happy that you liked it! It was important talk for me.
@vladyslavkarpenko9372
@vladyslavkarpenko9372 Жыл бұрын
@@event-driven Good luck and thankful audience for every next public talk 🤝🏻
@event-driven
@event-driven Жыл бұрын
@@vladyslavkarpenko9372 thank you once more ❤
@valentinajemuovic
@valentinajemuovic Жыл бұрын
Great video; thanks for this!
@event-driven
@event-driven Жыл бұрын
Thank you, Valentina! Much appreciated 🙂
@richardhoo
@richardhoo 11 ай бұрын
Great talk. I'm literally about to build an event sourced banking system. It is so lucky that I found this video. Just wondering how you would deal with those inflight transactions between account closed and account opened especially if these events need some approval processed controlled by human.
@diegosasw
@diegosasw Жыл бұрын
Great talk! Keeping streams short could be a huge challenge. I eventually hit the need for snapshots. Imagine you have a User aggregate/stream to manage user personal details, password, etc. And now you add a new magic email link or temporary code generation for authentication which would grow the stream very quickly. What to do then? Even by extracting this to its own stream, it'd still hit the same problem. Rolling out a new stream just to come around these "tech" limitations feel like polluting domain with technical limitations.
@JohnMcclaned
@JohnMcclaned 7 ай бұрын
Temporary code generation should be temporary and it is independent from a user aggregate. There are no invariants between user and code generation.
@nilskp
@nilskp Жыл бұрын
How do you know where your "snapshot events" are located?
@leftjabrighthook
@leftjabrighthook Жыл бұрын
Event sourcing newb here, If I want to perform aggregates on my checking account (sum), I have to load *all* the records from the database? Seems extremely inefficient.
@diegosasw
@diegosasw Жыл бұрын
All the events for THAT specific stream. That's why it's important to design around those streams..you would have Account-1 stream, Account-2, etc. Each one for a different account. Loading hundreds of events in order to instantiate an aggregate is super quick. Definitely quicker than reading data from different indexed tables in a relational database and joining and filtering results.
@dscataglini
@dscataglini Жыл бұрын
Great Job Oskar, great presentation. Although I have to say, in the beginning I was like, what is Ryan Gosling doing giving a talk at DDD??? ;)
@event-driven
@event-driven Жыл бұрын
haha, thanks! I hope that some people are also telling him, that he looks like me 😅
@dscataglini
@dscataglini Жыл бұрын
@@event-driven Most definitely! People are probably seeing him around and yell at him, Hey Oskar! Great talk!
@event-driven
@event-driven Жыл бұрын
😂😂😂
@JeffChentingwei628
@JeffChentingwei628 Жыл бұрын
12:07
@a0um
@a0um Жыл бұрын
I find memes funny in certain contexts, but not that much during presentations. It’s a short talk for professionals on something that should be of interesting and engaging for its own good. What is the point of putting sensational pictures on every other slide?
@maskahleo
@maskahleo Жыл бұрын
Nothing wrong with that
@JogoShugh
@JogoShugh Жыл бұрын
I agree it is fine in general, though maybe fewer would be better. Every third slide?
@event-driven
@event-driven Жыл бұрын
Thank you for the feedback. Slides, for me, are just illustration for of what I'm saying. I'm trying to keep them engaging, help pass knowledge, and have some fun. Of course, the last part is subjective, so I understand that it may be too much for some people like you, but I hope that's not disturbing. It's not easy to find the right balance, as different people have different needs. I think that just showing diagrams won't be enough engaging, as the content is already dense. I'll think on if I can make the ratio better.
@a0um
@a0um Жыл бұрын
@@event-driven thank you for sharing your knowledge and trying to make engaging presentations. I hope you’ll get enough feedback to decide whether to make any adjustments or not. Respect for being the one in the stage and reading the comments section! ☺️
@event-driven
@event-driven Жыл бұрын
@@a0um, thanks; indeed, getting enough feedback can be challenging. Especially constructive criticism that helps to get a better 🙂
Technical Coaching with the Samman method - Emily Bache - DDD Europe 2022
46:00
Domain-Driven Design Europe
Рет қаралды 3,2 М.
Advanced patterns for use with Event Sourced systems - James Geall - DDD Europe 2023
54:25
Domain-Driven Design Europe
Рет қаралды 3,2 М.
兔子姐姐最终逃走了吗?#小丑#兔子警官#家庭
00:58
小蚂蚁和小宇宙
Рет қаралды 13 МЛН
What's in the clown's bag? #clown #angel #bunnypolice
00:19
超人夫妇
Рет қаралды 40 МЛН
The DDD Starter Modelling Process - Maxime Sanglan-Charlier - DDD Europe 2022
48:26
Domain-Driven Design Europe
Рет қаралды 23 М.
Why Event Sourced Systems Fail [eng] / Greg Young
48:50
fwdays
Рет қаралды 54 М.
Event Modeling from Beginner to Expert • Adam Dymitruk • YOW! 2023
45:45
Event Storming - Alberto Brandolini  - DDD Europe 2019
35:21
Domain-Driven Design Europe
Рет қаралды 84 М.
Naming in DDD - Sepehr Namdar & Khaled Souf - DDD EU 2022
23:56
Domain-Driven Design Europe
Рет қаралды 7 М.
Event Sourcing - You are doing it wrong - David Schmitz
44:06
Devoxx Poland
Рет қаралды 1,4 М.
Greg Young - The Art of Destroying Software
42:31
tretton37
Рет қаралды 10 М.
Event Sourcing - the what, why & how - Anita Kvamme - NDC Oslo 2024
52:11
兔子姐姐最终逃走了吗?#小丑#兔子警官#家庭
00:58
小蚂蚁和小宇宙
Рет қаралды 13 МЛН