More Software Engineering Radio episodes

SE Radio 720: Martin Dilger on Understanding Eventsourcing thumbnail

SE Radio 720: Martin Dilger on Understanding Eventsourcing

Published 13 May 2026

Recommended: Useful Architectural Pattern.

Duration: 55:36

Event sourcing is a system design approach that records changes as sequential events to ensure historical traceability, uses event modeling for aligning systems with human workflows, contrasts with CRUD architectures, and emphasizes slice-based design, event streams, and practical applications like legacy modernization and workflow simplification.

Episode Description

Martin Dilger, founder and CEO of Nebuilt GmbH, speaks with host Giovanni Asproni about event sourcing -- a software architecture pattern in which, ra...

Overview

The text provides an in-depth exploration of event sourcing, a system design approach that records changes as a sequence of events rather than relying on structured objects to capture state. This method contrasts with traditional CRUD architectures by treating events as the sole source of truth, enabling detailed historical tracking of system changes. Key concepts include examples like a law information system, where actions such as "case created" are logged to maintain traceability, and the distinction between "events" (business facts) and related terms like event streaming or storming. Event modeling is highlighted as a collaborative technique for early-stage process design, using linear timelines to create readable narratives of workflows, while event storming employs group activities to uncover business rules and dependencies. The approach emphasizes human-centric design, aligning technical systems with how businesses naturally narrate processes.

Core components of event sourcing include state change (input events from user actions) and state flow (event sharing across processes), organized into self-contained "slices" for manageable complexity. Event models can directly inform code generation and simplify development by breaking down workflows into modular steps. Read models derive user-facing data from event projections, ensuring accuracy by tracing information back to its origin. The text also addresses practical concerns, such as data volume management through process-specific event streams and the use of aggregates to validate state transitions. Performance issues are mitigated by designing systems with clear boundaries, avoiding unnecessary coupling. Unlike traditional relational databases, which flatten historical data, event sourcing preserves full timelines, offering advantages in auditing, debugging, and compliance.

The text further discusses challenges in adopting event sourcing, including the need to shift from traditional architectures that prioritize code reuse to slice-based designs emphasizing independence. Modernization strategies suggest starting with small, isolated processes or legacy systems through incremental proofs of concept, leveraging AI to analyze existing code for event models. Collaborative techniques like behavior-driven development (BDD) ensure alignment with business rules, while metrics like slice cycle time help measure progress. Ultimately, the approach advocates for event sourcing as a scalable, flexible default for systems requiring detailed historical insight, contrasting it with event streaming and highlighting its applicability in enterprise environments where data evolution and transparency are critical.

Final Notes

Here are the key insights and takeaways from the text:

Key Insights

  1. Event Sourcing is a method of storing system information as a sequence of events: This approach preserves a full history of system changes and provides a source of truth for state changes.
  2. Event Modeling is essential for understanding business processes and designing event-driven systems: Collaborative modeling techniques like Event Storming can help identify events, create a ubiquitous language, and define system processes.
  3. Event Sourcing decouples systems and enables scalability: By treating new features as independent slices, event sourcing allows systems to scale with flat cost curves.
  4. Event Sourcing emphasizes process-oriented design: The method focuses on how systems evolve over time, rather than relying on static data structures.
  5. Event Sourcing is not just about storing events, but also about understanding the business domain: The approach requires a high degree of collaboration between business stakeholders and technical teams.
  6. Traditional architectures often prioritize simplicity and coupling, while Event Sourcing emphasizes independence and event-driven modeling: This trade-off can be challenging for developers who need to unlearn established practices.
  7. Event Sourcing can improve development speed and reduce risk: By focusing on small, isolated processes and using behavior-driven development (BDD), teams can create systems that are operationally successful in production.

Takeaways for Developers

  1. Event Sourcing requires a mindset shift from traditional CRUD-based design: Developers need to unlearn code reuse and rely on slice-based architectures.
  2. Use AI-powered coding agents to accelerate development: Agents can handle localized tasks without needing to understand the entire codebase.
  3. Start with Event Modeling: Define event models to understand business processes and create executable specifications for system workflows.
  4. Focus on behavior-driven development (BDD) for testing: Test event-driven systems with BDD to ensure alignment with business rules and requirements.
  5. Iterate on small, isolated processes: Emphasize rapid development cycles, such as proof-of-concepts in 12 days, to increase productivity.

Key Takeaways for Business Stakeholders

  1. Event Sourcing improves understanding of business domains: Collaboration with technical teams can lead to systems that are more aligned with user needs.
  2. Business rules should drive system design: Define rules using Given-When-Then scenarios for each system "slice" to ensure alignment with real business needs.
  3. Executable specifications ensure system adherence to business logic: Translate event model rules into executable code specifications to ensure the system meets intended requirements.
  4. Slice cycle time should be a key performance metric: Measure the time it takes a team to build a "slice" to increase productivity and deliver rapidly.
  5. Adopting event modeling can lead to significant productivity gains: Organize an "FedEx Day" experiment to demonstrate the feasibility of event sourcing and slice-based workflows.

Recent Episodes of Software Engineering Radio

15 Jul 2026 Garth Mollett on AI Supply Chain Security

"Explores AI supply chain security challenges, including probabilistic outputs, data poisoning, and emerging threats, while emphasizing structured measures like model signing and isolation to mitigate risks."

8 Jul 2026 Clare Liguori on AWS Strands SDK for AI Agents

This text outlines AI agents' core components (models, tools, prompts), their evolution via the Strands SDK from early reliability challenges to simplified model-driven approaches, and their application in automating business workflows with technical considerations like tool integration, validation mechanisms, and challenges in context management, alongside tools and future trends in agent design.

More Software Engineering Radio episodes