Event store

All other objects can be derived from these events, meaning they are instantiated in memory by runtime code as needed (e.g. for showing in a user interface).

When the aggregated object instance is no longer needed, it can simply be discarded (released from memory).

For example, the event store concept of a database can be applied to insurance policies or pension dossiers.

Disadvantage may be that the code needs to re-instantiate all objects in memory based on the events each time a service call is received for a specific dossier or policy.

In regular databases, handling backdated events to correct previous, erroneous events can be painful as it often results in rolling back all previous, erroneous transactions and objects and rolling up the new, correct transactions and objects.