Hi Gino, I will try to elaborate on the same.
Our requirement :
- ENTITY_CREATED → publish event if Phone.Number is present at creation
- ENTITY_CHANGED → publish event only if Phone.Number actually changed
- Payload type must remain SNAPSHOT_WITH_DELTA
- We want to achieve this within a single queue, if supported
Step‑by‑step:
1. Create scenario
- New HCP with Phone populated
- Snapshot contains Phone → event is published
(this is expected)
2. Update scenario – Phone changed
- Delta contains Phone.Number
- Event is published
(this is expected)
3. Update scenario – FirstName changed only (Issue is here)
- Delta does not contain Phone.Number
- Snapshot still contains Phone
exists(attributes.Phone.Number) evaluates to true
- Event is published
This is the behavior we're trying to avoid.
Key question
Is there a supported pattern to differentiate ENTITY_CREATED vs ENTITY_CHANGED inside a single object filter so that we dont have false updates, such that:
- Snapshot attributes are evaluated only for creates
- Delta attributes are evaluated only for updates
- Snapshot‑only attributes do not cause false positives on updates
Original Message:
Sent: 02-19-2026 10:53
From: Gino Fortunato
Subject: Differentiate ENTITY_CREATED vs ENTITY_CHANGED in a single queue (Snapshot + Delta)
My understanding is the the functionality of the 'snapshot' mode is to always publish all of the attributes. So if you want the phone not to be published at all, you need to use 'delta'.
That said, it seems to me that if you removed the OR then the logic will be that it will only publish when the phone was changed. If you want to ensure that there is a phone number (i.e. the change was not to remove the phone number) then instead of OR you should be using AND in that part of the filter.
Am I thinking of this the right way?
------------------------------
Gino Fortunato
Principal Solution Engineer
Reltio
Original Message:
Sent: 02-18-2026 22:43
From: Chetan P
Subject: Differentiate ENTITY_CREATED vs ENTITY_CHANGED in a single queue (Snapshot + Delta)
Hi Team,
We're trying to implement a single Reltio streaming queue (payload type: SNAPSHOT_WITH_DELTA) for HCP entities, with the following requirement:
- ENTITY_CHANGED → send event only if Phone.Number actually changed (use delta)
- ENTITY_CREATED → send event if Phone.Number is present on creation
Our intended object filter is:
equals(type,'configuration/entityTypes/HCP')AND( changes(delta.attributes.Phone.Number) OR exists(attributes.Phone.Number))
Problem we're facing
With SNAPSHOT_WITH_DELTA, the snapshot (attributes) always contains the full entity state.
Because of this, when any other attribute (e.g., FirstName) changes:
changes(delta.attributes.Phone.Number) → false
exists(attributes.Phone.Number) → true (Phone exists in snapshot)
As a result, ENTITY_CHANGED events where Phone did NOT change are still passed downstream, which creates noise.
What we want is -
- We want to achieve this in one queue
- We are using SNAPSHOT_WITH_DELTA
My Question -
- Is there a supported way to differentiate ENTITY_CREATED vs ENTITY_CHANGED inside a single object filter?
- Is there a recommended filter pattern that:
- Uses delta for updates
- Uses attributes for creates
- Without letting snapshot‑only attributes cause false positives?
- Or is a dual‑queue approach (Created vs Changed) the only clean solution here?
Any guidance or alternate approaches would be really helpful.
Thanks in advance!
------------------------------
Chetan
------------------------------