No video

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

  Рет қаралды 11,591

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 ❤
@valentinacupac
@valentinacupac Жыл бұрын
Great video; thanks for this!
@event-driven
@event-driven Жыл бұрын
Thank you, Valentina! Much appreciated 🙂
@richardhoo
@richardhoo 9 ай бұрын
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.
@nilskp
@nilskp Жыл бұрын
How do you know where your "snapshot events" are located?
@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 5 ай бұрын
Temporary code generation should be temporary and it is independent from a user aggregate. There are no invariants between user and code generation.
@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,1 М.
Naming in DDD - Sepehr Namdar & Khaled Souf - DDD EU 2022
23:56
Domain-Driven Design Europe
Рет қаралды 7 М.
Секрет фокусника! #shorts
00:15
Роман Magic
Рет қаралды 32 МЛН
Please Help Barry Choose His Real Son
00:23
Garri Creative
Рет қаралды 23 МЛН
This Dumbbell Is Impossible To Lift!
01:00
Stokes Twins
Рет қаралды 34 МЛН
Greg Young - The Art of Destroying Software
42:31
tretton37
Рет қаралды 10 М.
A Beginner's Guide to Event-Driven Architecture
37:28
Software Developer Diaries
Рет қаралды 10 М.
Event-Driven Architecture (EDA) vs Request/Response (RR)
12:00
Confluent
Рет қаралды 136 М.
Introducing Bounded Contexts in a monolithic application - Robert Baelde - DDD Europe 2022
24:21
Секрет фокусника! #shorts
00:15
Роман Magic
Рет қаралды 32 МЛН