Journey Manager (JM) The transaction engine for the platform. / Event-Based ArchitectureEvent-Based Architecture | System Manager / DevOps | 24.04This feature was updated in 24.04
Manager comes with the Event-Based Architecture (EBA) that allows you to subscribe and publish various events to event topics run on Apache KafkaApache Kafka is a distributed event store and stream-processing platform, which provide a unified, high-throughput, low-latency platform for handling real-time data feeds. For more information, see https://kafka.apache.org/intro.
This makes it possible to decouple some Manager's core functionality so it can be externalized. For example, you may want to replace collaboration jobs workflow engine with an external product of your choice. This, in turn, improves integrations with various 3rd party systems.
We have introduced the Event-Based Architecture because it is based on the concept of events. This approach encourages you to think of events first, not the things and their states. An event is something that happens, for example, data can be an event. In Manager, most of our events are some sort of changes to data, for example, a form submission.
Our event-based architecture uses the Inbox and Outbox patterns. We've implemented theme using the Kafka Subscriber and the Kafka Producer, which are Kafka clients that listen to and publish events to different topics in a Kafka's cluster.
The simplified Kafka event flow is illustrated below:
In terms of the event-based architecture, Journey Manager is a producer and any external system is a consumer of various events. This is illustrated below:
The event publishing mechanism kicks in when submission data is created or modified. For example, when a form user clicks a Submit button on an Onboarding application form, the Submission Service raises an event. A similar event is raised if a service or a task updates or deletes submission data. This is illustrated in a diagram below:
The Submission Service passes the new event to the Event Outbox component to publish it to a Kafka's topic. The Event Outbox also persists it in a local database to ensure the event will be published in case the first publishing effort fails. There are several other components involved to make sure event processing is audited and all data is purged according to your data retention management.
Let's have a detailed look at the sequence of events when a form user submits a form:
For the event-based architecture to work correctly, you need to configure Manager in a way that certain events are published in corresponding topics in the Kafka cluster. This is illustrated in a diagram below:
There's some configuration required to enable publish and subscribe event flows in Manager. Your Administrator or the Cloud Services team can easily perform it by following the configuration steps below. This is a common task that must be done after Manager is installed or upgraded.
To start generating events and publishing them to Kafka topics:
To subscribe to topics and start listening to events from Kafka:
Next, learn about the event definition.