Skip to main content
Adrià García
← All patterns
Pattern 10Profile and retention

Profile is for activation; the data lake is for memory

What goes into Profile and how long it stays is an architecture decision. It also decides what counts towards the licence.

Keep everything, activate what matters
Data lake
All events
Lake datasets
Analytics and SQL
Profile store
Activation events
Expiry per dataset
Audiences and journeys

Generic diagram. It does not reproduce a client architecture.

The usual default is to enable everything ingested for Profile and set no expiry. It works for the first month. After that the profile piles up years of browsing that no audience uses, and the data volume counted towards the licence grows every month even when customers do not.

The data lake already keeps the events, and analytics reads them from there. Profile only needs what activates: what feeds audiences, journey conditions and personalisation, for the window in which it is used.

Production signals

  • Every event dataset is enabled for Profile.
  • No event dataset has an expiry in Profile.
  • Some audiences have windows longer than the expiry of their data.
  • The licensed data volume grows every month even when customers do not.

Recommended architecture

Enable only the events that activate for Profile, and send the rest to a dataset that stays in the data lake.

Align each dataset's expiry with the longest window of the audiences that use it.

When not to apply it

  • Do not shorten an expiry without reviewing the audiences first: the deletion is permanent.
  • Do not take an event out of Profile when an audience or a journey condition uses it.

Try it in a simulator

Interactive scenarios where this pattern fails and gets fixed.