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

Transformation from UDM data object to an event data object

Fig. 4.3 Transformation from UDM data object to an event data object#

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:

Consumer of Event data object

Fig. 4.4 Consumer of Event data object#

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.

  1. Incoming queue

  2. Queue for each consumer

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

Event data object queues

Fig. 4.5 Event data object queues#

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.