Bruno Sakoto | ff7d57a | 2021-09-07 18:21:59 -0400 | [diff] [blame] | 1 | .. 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 | ========================= |
| 8 | CPS Temporal Architecture |
| 9 | ========================= |
| 10 | |
Bruno Sakoto | a24713b | 2021-09-07 18:21:59 -0400 | [diff] [blame] | 11 | CPS Temporal is a dedicated service, **distinct** and **decoupled** from CPS |
| 12 | Core. CPS Temporal service is an **independently deployable** unit. |
Bruno Sakoto | ff7d57a | 2021-09-07 18:21:59 -0400 | [diff] [blame] | 13 | |
Bruno Sakoto | a24713b | 2021-09-07 18:21:59 -0400 | [diff] [blame] | 14 | Integration between Core and Temporal is **event notification based, |
| 15 | asynchronous, send and forget**. By doing this, we are avoiding the dependency |
| 16 | from CPS Core on CPS Temporal and its API. It reverses the |
| 17 | dependency, which makes more sense from a conceptual point of view. |
| 18 | |
| 19 | For 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 | |
| 26 | In the future, some other services can be created to listen to the same topic |
| 27 | to implement additional functionalities or storage forms. |
| 28 | |
| 29 | The event messaging system for this integration is **Kafka**, whose running |
| 30 | instance is deployed independently from CPS. It could be either: |
| 31 | |
efiacor | 2acac9c | 2022-03-15 11:30:23 +0000 | [diff] [blame] | 32 | * the ONAP Kafka instance from ONAP Strimzi component, |
Bruno Sakoto | a24713b | 2021-09-07 18:21:59 -0400 | [diff] [blame] | 33 | * or any specific Kafka instance deployed independently from ONAP |
| 34 | |
| 35 | The 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 |