4.3. Event objects#
The Provisioning Service produces Event objects to notify interested consumers of changes in the Identity Store and Directory Service. For every create, update, and delete operation on directory objects, the UDM Transformer creates one Event object that contains the object’s state before and after the operation, along with some metadata. This section provides detailed information about the Event object.
See also
- Provisioning Service in the components overview section
for information about purpose and tasks.
- Directory objects in data objects section
for information about Directory objects.
- UDM objects in data objects section
for information about UDM objects.
4.3.1. Structure#
An Event object uses the following structure. The structure and the fields are the same for each object realm.
publisher_name
:Name of component that generated the event data, for example
"LDIF producer"
.ts
:Timestamp in ISO 8601 format, for example
"2024-09-12T17:34:43.441214"
.realm
:The type of event. At the time of writing, only realm
"udm"
exists.topic
:Sub-type of the event. In the case of the
udm
realm, this is the UDM object type. For example"users/user"
body
:The payload of the message. Its content depends on the
realm
. In the case of"udm"
it’s an object with two fields:old
:UDM object representation of the directory object before the operation.
new
:UDM object representation of the directory object after the operation.
sequence_number
:The sequence number is an integer associated with the message.
num_delivered
:Number of times a consumer has retrieved the message from the Provisioning Service as integer value. A number higher than
1
may indicate that the consumer previously was unsuccessful to process the event and is retrying.
Event objects in the realm "udm"
consist of two UDM objects in their body.
Fig. 4.3 shows this relationship.
The UDM Transformer in the Provisioning Service creates Event objects in the realm "udm"
.
See also
- ISO 8601 - Wikipedia
for information about the internal standard covering the worldwide exchange and communication fo data and time-related data.
4.3.2. Consumers of Event objects#
Consumers of the Event object are the Provisioning Service itself, third-party applications and other Nubus components as consumers of the Provisioning Service. The Provisioning Service uses the objects in different components:
The Prefill Service provides initial data with the Event object for the consumer.
The UDM Transformer creates the UDM object data of an Event object from LDAP data.
The Dispatcher distributes Event objects to consumers based on the events
realm
andtopic
.The Consumer Messages HTTP REST API allows consumers to retrieve event objects.
4.3.3. Queues holding Event objects#
In the Provisioning Service functional component, the Event object passes through the following queues, as shown in Fig. 4.5.
Incoming queue
Queue for each consumer
Prefill Service queue for each consumer
After transforming directory objects to UDM objects, the UDM Transformer adds an Event object to the Incoming queue. The Dispatcher consumes the Incoming queue and distributes the Event objects to the Queue for each consumer. If multiple consumers have interest in the Event object, the Filter and duplicate events for consumers function of the Dispatcher duplicates the Event object. If the consumer registration asks for an initial data load, the Prefill Service runs the Populate initial data for each consumer and writes Event objects to the Prefill Service queue for each consumer.
See also
- Consumer Registration HTTP REST API in Provisioning Service section
for information about the consumer registration process.
- Prefill Service in Provisioning Service section
for information about the Prefill Service.