Reltio Connect

 View Only
  • 1.  Differentiate ENTITY_CREATED vs ENTITY_CHANGED in a single queue (Snapshot + Delta)

    Posted 2 days ago

    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 -

    1. Is there a supported way to differentiate ENTITY_CREATED vs ENTITY_CHANGED inside a single object filter?
    2. Is there a recommended filter pattern that:
      • Uses delta for updates
      • Uses attributes for creates
      • Without letting snapshot‑only attributes cause false positives?
    3. 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
    ------------------------------


  • 2.  RE: Differentiate ENTITY_CREATED vs ENTITY_CHANGED in a single queue (Snapshot + Delta)

    Reltio Employee
    Posted 22 hours ago

    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
    ------------------------------



  • 3.  RE: Differentiate ENTITY_CREATED vs ENTITY_CHANGED in a single queue (Snapshot + Delta)

    Posted 21 hours ago

    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



    ------------------------------
    Chetan
    ------------------------------