.. This work is licensed under a .. Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 .. .. Copyright (C) 2021 Bell Canada ========================= 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: .. image:: /_static/images/cps-temporal-c4-container.png :alt: C4 Model Diagram: Containers for CPS Software system