Skip to main content
Adrià García
Menu
← All patterns
Pattern 02Customer state

Separate operational state from customer state

Immediate orchestration and queryable facts do not need the same representation.

Two states, two responsibilities
Operational loop
Trigger
Journey state
Next action
Customer record
Business events
Queryable profile
Consumers

Generic diagram. It does not reproduce a client architecture.

A journey may need state immediately, while segmentation, governance and Decisioning need bounded, queryable facts. Forcing one representation to serve both creates fragile objects.

Operational state is optimized for action. The queryable profile exposes durable facts only, while events remain the auditable history.

Production signals

  • Profile objects grow with every journey.
  • Attributes cannot be rebuilt after a failure.
  • Segments depend on operational fields.

Recommended architecture

Classify each state by latency, durability, consumer and rebuildability before choosing a store.

Keep the event as evidence and promote to the profile only what operations need to query.

When not to apply it

  • Do not duplicate a stable fact already available at the required latency.
  • Do not create a profile attribute without a concrete consumer.