Add an external queue configuration
Learn how to add an external queue to stream data between Reltio and external systems in the Tenant Management application.
Do you want to send message events and payloads from Reltio to an external message queue service that can consume and propagate them to downstream systems? Add an external queue configuration in the Console Tenant Management application, and you'll be ready to roll.
Something didn’t go to plan? Let's see if we can give you a hand!
- Q. Is there a size limit for messages streaming through external queues?
-
A. The provider limits the size of messages that can be streamed through its message queues.
Table 1. Message streaming size limits Queue type Maximum event size AWS SNS/SQS 256 kb GCP Pub/Sub ~10Mb Microsoft Azure Service Bus 1 MB You can bypass this size limits using these properties in your Reltio Tenant Configuration (let us know if you need a hand with this):- largeObjectsSupport: Ensure that this property is set to true and then set the exceededQueueSizeLimit attribute to build the consumer logic to work with larger messages in either of the following ways:
- False: Get the complete message, including the object data. This is the default.
- True: Get the object URI instead of the message data. Then, get the object data from Reltio using the GET by URI API.
- largeObjectsSupport: Ensure that this property is set to true and then set the exceededQueueSizeLimit attribute to build the consumer logic to work with larger messages in either of the following ways:
- Q. How is the order of messages streaming through external queues managed?
-
A. Reltio doesn't stream events in First In, First Out (FIFO) order. Instead, multiple nodes process multiple requests in parallel. This enables fast and efficient horizontal scaling. But, it also can result in processing a request that arrives a few milliseconds after another faster and putting it into the queue first.
You can use the objectVersion and commitTime attributes in streamed message headers to manage the order of messages in the consuming system. Identify the version of the object. If you already have a newer version or timestamp, don’t persist or propagate the consumed message downstream.
For an ENTITIES_MATCHES_CHANGED event, the commitTime indicates the time when the match event occurred and doesn’t indicate the time when the object is updated.
- Q. Can all Reltio event types be streamed to external queues?
- A. No, you can't stream the following event types:
- AS_MATCHES_RESET
- AS_MATCHES_SET
- NOT_MATCHES_RESET
- NOT_MATCHES_SET
- POTENTIAL_MATCHES_FOUND
- POTENTIAL_MATCHES_REMOVED
- Q. Can I configure multiple queues to the same destination?
- A. Yes, you can configure multiple queues to the same destination. For more information, see topic Outbound Streaming Scenarios.
- Q. Can I configure the same events to be streamed to multiple destinations?
- A. Yes, you can configure the same events and filters on multiple queues pointing to different destinations. For more information, see topic Outbound Streaming Scenarios.
- Q. How can I add static fields with Delta streaming?
- A. Reltio doesn’t support selecting static fields while configuring delta streaming for objects. This is because the delta configuration sends only the changed attributes of the object and minimal static fields that can help you identify the object correctly in Reltio and in the source system. If you also want to use static fields to correctly link the changes to the source tables in your database, configure an extra queue using the Snapshot (Selected fields) option and select the required attributes.
Example
The Delta payload snapshot includes only the object fields that have changed. These are presented in a before-after format similar to the Activity Log. For more information, see topics Activity Log perspective and Search using Activity Log API.
00009ab
.{
"type": "ENTITY_CHANGED",
"uri": "entities/00009ab",
"deltas": {
"ovChanged": true,
"delta": [{
"type": "ATTRIBUTE_CHANGED",
"attributeType": "configuration/entityTypes/Location/attributes/City",
"newValue": {
"value": "ChangedCity",
"ov": true,
"id": "8",
"sources": [
"Reltio"
]
},
"oldValue": {
"value": "InitialCity",
"ov": true,
"id": "8",
"sources": [
"Reltio"
]
}
}]
}
}