blob: 6972ba757d9e19d380d406854a5760b178203dbb [file] [log] [blame]
Bruno Sakotoff7d57a2021-09-07 18:21:59 -04001.. This work is licensed under a
2.. Creative Commons Attribution 4.0 International License.
3.. http://creativecommons.org/licenses/by/4.0
4..
5.. Copyright (C) 2021 Bell Canada
6
7=========================
8CPS Temporal Architecture
9=========================
10
Bruno Sakotoa24713b2021-09-07 18:21:59 -040011CPS Temporal is a dedicated service, **distinct** and **decoupled** from CPS
12Core. CPS Temporal service is an **independently deployable** unit.
Bruno Sakotoff7d57a2021-09-07 18:21:59 -040013
Bruno Sakotoa24713b2021-09-07 18:21:59 -040014Integration between Core and Temporal is **event notification based,
15asynchronous, send and forget**. By doing this, we are avoiding the dependency
16from CPS Core on CPS Temporal and its API. It reverses the
17dependency, which makes more sense from a conceptual point of view.
18
19For each data modification handled by CPS Core,
20
21* CPS Core is **publishing**, to a dedicated topic, an event representing the
22 data configuration or state.
23* CPS Temporal is **listening** to the same topic for the event and is
24 responsible to keep track of all data over time.
25
26In the future, some other services can be created to listen to the same topic
27to implement additional functionalities or storage forms.
28
29The event messaging system for this integration is **Kafka**, whose running
30instance is deployed independently from CPS. It could be either:
31
efiacor2acac9c2022-03-15 11:30:23 +000032* the ONAP Kafka instance from ONAP Strimzi component,
Bruno Sakotoa24713b2021-09-07 18:21:59 -040033* or any specific Kafka instance deployed independently from ONAP
34
35The following diagram is the C4 Model representing CPS System Containers:
36
37.. image:: /_static/images/cps-temporal-c4-container.png
38 :alt: C4 Model Diagram: Containers for CPS Software system