Design for replayability

Authors: Nick Tune

Submitter: Nick Tune

How can I make projection more adaptable?

Short description

Design projections so that they can be easily replayed per stream or projection type.

Examples

A particular read model requires a new field that wasn't captured previously. Changing the logic and replaying it will make the field available for already existing read models as well as for newly created ones.

Context

In Event-Driven architectures and particularly in Event-Sourcing + CQRS the "read" part of the system is a projection of the Event Stream. Design the infrastructure of the event delivery to projection handler so that it can be easily replayed when bugs are discovered or requirements changed. It is usually a good idea to be able to replay either subset of streams or all of them.

Tags

Follow us

Read our latest news from Virtual DDD on any of these social networks!

Recent heuristics

Align with domain experts

Short description Align boundaries with the parts of the domain where there are different domain experts (not different people but different domain skills/knowledge). Context We should align boundaries in sociotechnical systems with our business processes to minimise...

Align bounded context with the value stream

Short description Align bounded contexts in socio-technical systems to support the value stream of the business. Use these at a strategic level when you are in a position to understand the value stream of the business. Examples For example, in an ecommerce company...