Event Sourced Architecture: A Deep Dive

ConTejas Code - A podcast by Tejas Kumar - Mondays

Categories:

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.Chapters00:00 - Intro03:33 - Sponsor (CrabNebula.dev)04:21 - Defining Event Sourcing07:47 - What are Events? (Domain Driven Design)14:45 - Real-World Examples of Event Sourcing19:52 - Complexities of Event Sourcing21:33 - Storage Costs23:36 - Computational Costs24:10 - Snapshotting35:15 - Event Ownership36:19 - CQRS44:08 - Consistency with Kafka54:10 - Kafka Performance Mechanisms01:03:05 - Kafka as an Event Store01:04:13 - Zookeeper & KRaft01:09:47 - Postgres WAL as an Event Store?01:13:24 - Event Sourcing Use Cases01:18:50 - Event Sourcing Problems01:26:22 - Should You Event Source?01:27:44 - Conclusion Hosted on Acast. See acast.com/privacy for more information.