DDD Europe 2023 - Program

Temporal Patterns

Main Conference - Hands-on Lab


Hadi Ahmadi

Hadi Ahmadi
Thursday 8 from 11:00 until 13:00 in Black Room

(This is a hands-on lab with limited capacity)

Many systems need to track and keep records of changes to data. It's not just about audit logs, but the ability to travel back in time and actually use the data. For example, you can use it to analyze and predict future events, run what-if scenarios for the past, or use it in the model for solving time-oriented problems. When dealing with these kinds of problems, event sourcing is one of the first things that comes to mind. But not all systems are using event sourcing, or are not willing to do so. Keeping track of state changes and using them when needed is what temporal patterns are all about.

The purpose of this workshop is to demonstrate how we can keep track of changes in our model by using temporal patterns. There will be different patterns discussed depending on the situation, such as whether the change is concerning a single property or an entire object.

Note: We will primarily focus on temporal patterns in object-oriented languages. Even though functional languages can be used to implement these concepts, this workshop does not cover them.


Having set up an object-oriented programming environment.

A copy of the source code was pulled from Github. https://github.com/H-Ahmadi/DDDEU2023Temporal_Patterns

About Hadi Ahmadi

Twitter LinkedIn Sessionize Sessionize

With over 10 years of experience in Software development, I am a Technical Leader, Architect and Designer. Passionate for Software design & Architecture (specially DDD, CQRS & Event Sourcing) and Agile practices such as TDD and BDD with an in depth knowledge of OOP, GoF Design Patterns, SOLID Principles and Integration Patterns.