Master data event streaming message template (IBM Match 360)

When you stream master data events to downstream systems by using the IBM Match 360 event streaming capability and an Apache Kafka connection, the event messages follow a standard template.

The generated Apache Kafka message has three components:

  • The message header includes metadata for the message
  • The message key includes the trigger part of the message
  • The message value includes the remaining message details.

Message header

Master data event message header details
Message header key Value
SERIALIZER The serializer used for the Kafka message. The only supported serializer is JSON.
EVENT_TYPE One of the supported event types for which the message was generated, such as record_change or entity_change.
MESSAGE_TS0 A timestamp showing the time when the message was generated.
X-Correlation-ID The transaction correlation ID for which the message was generated. For example: 5af16599-f0fc-41f4-8957-4774a5c18ebf.

Message key

Master data event message key details
Message keys Value
action The action that caused the event. Possible values are create, update, delete, link, and unlink.
trigger_type The event (trigger) that caused the generation of the message. For data change events, the trigger is caused by either a record change or a manual_linkage (link or unlink).
partition_key A unique identifier for this data change event. The key is used while sending the message to multi-partition topics.

For example:

         {
            "action": "create",
            "trigger_type": "record_change",
            "partition_key": 4312
         }

Message value

The message value is comprised of two main parts:

  • Details of the record that caused the data change event.
  • An array of entities that were affected by this action.
Master data event message value details
Message value key Value
record_details Complete details of the record and event that triggered the data change event. In the case of a manual link or unlink, this value is null because there was no underlying change to the record that caused an entity change event.
entity_details An array of entities that were impacted by an action. The action can either be a record_change or a manual_linkage (link or unlink).
This value has the entity details, action, record ID before, and current record ID. Entity composition changes are captured using before and current, which store the record numbers of records that were associated before and after the entity composition change.

For example:

         {
         "record_details": {
                 "action": "create”,
                 "record_type": "person”,
                 "record_id": "872882872”,
                 "record_source": "TEST-6,
                 "record_number": 4312
         },
         "entity_details": {
                 "entities": [
                       {
                          "entity_id": "person_entity-4312”,
                          "entity_type": "person_entity”,
                          "timestamp": 1683216456613,
                          "action": "create”,
                          "before": [],
                          "current: [4312]
                       }
                  ]
           }
         }

Parent topic: Streaming record and entity data changes