From a24713b1daed8afeb51e0578700b06ace3a0f6ee Mon Sep 17 00:00:00 2001 From: Bruno Sakoto Date: Tue, 7 Sep 2021 18:21:59 -0400 Subject: Finalize architecture documentation Issue-ID: CPS-447 Signed-off-by: Bruno Sakoto Change-Id: I87ef8a9aee216dfc8f54749243d27d5c0b3d3981 --- docs/_static/images/cps-temporal-c4-container.png | Bin 0 -> 138603 bytes docs/content/architecture.rst | 29 +- docs/diagrams/cps-temporal-c4.drawio | 312 ++++++++++++++++++++++ 3 files changed, 339 insertions(+), 2 deletions(-) create mode 100644 docs/_static/images/cps-temporal-c4-container.png create mode 100644 docs/diagrams/cps-temporal-c4.drawio diff --git a/docs/_static/images/cps-temporal-c4-container.png b/docs/_static/images/cps-temporal-c4-container.png new file mode 100644 index 0000000..c857166 Binary files /dev/null and b/docs/_static/images/cps-temporal-c4-container.png differ diff --git a/docs/content/architecture.rst b/docs/content/architecture.rst index 18f4cc3..69aafef 100644 --- a/docs/content/architecture.rst +++ b/docs/content/architecture.rst @@ -8,6 +8,31 @@ CPS Temporal Architecture ========================= -.. warning:: Draft +CPS Temporal is a dedicated service, **distinct** and **decoupled** from CPS +Core. CPS Temporal service is an **independently deployable** unit. -* Subsystem and components architecture +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 DMaaP 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 diff --git a/docs/diagrams/cps-temporal-c4.drawio b/docs/diagrams/cps-temporal-c4.drawio new file mode 100644 index 0000000..4e6c6e3 --- /dev/null +++ b/docs/diagrams/cps-temporal-c4.drawio @@ -0,0 +1,312 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit 1.2.3-korg