Follow me on 𝕏: https://x.com/tejaskumar_
This podcast episode dives deep into the world of Event Sourcing, a powerful architectural pattern used in modern software development. Beginning with a clear definition of Event Sourcing, the episode explores its roots in Domain Driven Design and its critical role in recording and storing every change made to the state of an application in an event store. I break down complex topics, such as the nature of events, the intricacies of implementing Event Sourcing in real-world applications, and the various benefits and challenges associated with this approach.
Listeners will gain insights into the practical aspects of Event Sourcing, including detailed discussions on storage costs, computational expenses, and the practice of snapshotting to optimize performance. The episode also covers the concept of event ownership, Command Query Responsibility Segregation (CQRS), and ensuring data consistency using Apache Kafka, a distributed event streaming platform known for its high throughput, reliability, and scalability.
Further, the episode delves into Kafka's performance mechanisms, its use as an event store, and the transition from Zookeeper to KRaft for cluster coordination. Alternatives to Kafka, such as using Postgres' Write-Ahead Logging (WAL) as an event store, are examined, providing listeners with a comprehensive view of the options available for implementing Event Sourcing.
The discussion extends to real-life use cases of Event Sourcing, highlighting its application across various industries and projects. The experts also tackle some of the common problems encountered when adopting Event Sourcing, offering practical advice and solutions. Finally, the episode concludes with a thoughtful analysis on whether Event Sourcing is the right choice for your project, helping listeners to make informed decisions based on their specific needs and project requirements.
This episode is a must-listen for software developers, architects, and technology leaders looking to understand Event Sourcing, its benefits, challenges, and implementation strategies. Whether you're new to Event Sourcing or looking to refine your existing knowledge, this episode provides valuable insights into making the most of this powerful architectural pattern.
Chapters
00:00 - Intro
03:33 - Sponsor (CrabNebula.dev)
04:21 - Defining Event Sourcing
07:47 - What are Events? (Domain Driven Design)
14:45 - Real-World Examples of Event Sourcing
19:52 - Complexities of Event Sourcing
21:33 - Storage Costs
23:36 - Computational Costs
24:10 - Snapshotting
35:15 - Event Ownership
36:19 - CQRS
44:08 - Consistency with Kafka
54:10 - Kafka Performance Mechanisms
01:03:05 - Kafka as an Event Store
01:04:13 - Zookeeper & KRaft
01:09:47 - Postgres WAL as an Event Store?
01:13:24 - Event Sourcing Use Cases
01:18:50 - Event Sourcing Problems
01:26:22 - Should You Event Source?
01:27:44 - Conclusion
Hosted on Acast. See acast.com/privacy for more information.