aboutsummaryrefslogtreecommitdiffstats
path: root/docs/content/design.rst
blob: c414e6df66c29fb28ff79a40c01a6d2e9420c411 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
.. 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 Design
===================

Exposed APIs
============

CPS Temporal is providing a REST HTTP API to query historical CPS data.
Its OPEN API Specification can be found either:

* In :download:`openapi.yml <../_static/openapi/swagger/openapi.yml>`
  file
* At ``https://<cps-temporal-host>:<cps-temporal-port>/swagger/openapi.yml``
  endpoint available on CPS Temporal running instance

Swagger UI is also available at:

* ``https://<cps-temporal-host>:<cps-temporal-port>/swagger-ui.html``

And following Postman collection can be used to send requests to any running
instance:

* :download:`CPS Temporal Postman Collection <../_static/postman-collections/cps-temporal-postman-collection.json>`

Event Integration
=================

CPS Core and CPS Temporal are integrated with an event driven architecture.
Integration between these two components is event notification based.

For each data modification handled by CPS Core,

* CPS Core is publishing, to a dedicated Kafka 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.

Refer to :doc:`modeling` for more details on the event structure.