Egeria's event bus is constructed from an event broker infrastructure service and a set of well-known topics. Collectively they provide the ability to reliably pass events between different OMAG Servers:
- To register with an open metadata repository cohort, exchange type definitions and share changes to metadata with other members of the cohort via the OMRS topic(s).
- To exchange details of metadata changes through an Open Metadata Access Service (OMAS)'s InTopic and OutTopic.
Each topic maintains a pointer to the last event that a server has read so that it receives each event that is added even if it restarts.
There are different event broker implementations with greater or lesser reliability and performance. Many organizations establish a standard choice of their event broker service which is why Egeria uses connectors to implement its event bus.
Details of open metadata topic connectors are needed in multiple places in a server's configuration document. To simplify this configuration, the event bus config is added to the server's configuration document at the start of the configuration process. The event bus config establishes a set of defaults for the open metadata topic connectors. These defaults are used whenever open metadata topic connectors are configured.
The subsystems using the event bus have a specialized connector that supports event exchange for a specific type of event. Since it is necessary to be able to swap the event broker implementation, these connectors embed an open metadata topic connector within their implementation.
When the connection for one of these subsystem topic connectors is configured, the defaults from the event bus config are used to set up the nested open metadata topic connection.
The resulting configuration for these nested connectors is as follows:
- The common configuration for the event bus is identified and configured using the event bus config.
- This configuration is encoded in a connection object for the generic open metadata topic connector.
- When the consuming component is configured, a connection object for its specialized topic connector is created, with the generic open metadata topic connector embedded inside.
- When the connector broker inside Egeria's runtime is called upon to create the specialized topic connector at server start up, it navigates the hierarchy of connection objects, creating the nested hierarchy of connectors as specified.