CPS Temporal Architecture

CPS Temporal is a dedicated service, distinct and decoupled from CPS Core. CPS Temporal service is an independently deployable unit.

Integration between Core and Temporal is event notification based, asynchronous, send and forget. By doing this, we are avoiding the dependency from CPS Core on CPS Temporal and its API. It reverses the dependency, which makes more sense from a conceptual point of view.

For each data modification handled by CPS Core,

  • CPS Core is publishing, to a dedicated topic, an event representing the data configuration or state.

  • CPS Temporal is listening to the same topic for the event and is responsible to keep track of all data over time.

In the future, some other services can be created to listen to the same topic to implement additional functionalities or storage forms.

The event messaging system for this integration is Kafka, whose running instance is deployed independently from CPS. It could be either:

  • the ONAP Kafka instance from ONAP Strimzi component,

  • or any specific Kafka instance deployed independently from ONAP

The following diagram is the C4 Model representing CPS System Containers:

C4 Model Diagram: Containers for CPS Software system