blob: 7310573b47702d3777bdfd5bdd909ea17bd83fc5 [file] [log] [blame]
efiacor0fa01982019-04-08 14:52:08 +00001.. This work is licensed under a Creative Commons Attribution 4.0 International License.
2.. http://creativecommons.org/licenses/by/4.0
LF Jenkins CI3d3b9de2020-04-08 20:23:00 +00003.. _architecture:
efiacor0fa01982019-04-08 14:52:08 +00004
5Architecture
6============
7
8Capabilities
9------------
10The DMaaP Data Router (DR) provisioning API is an HTTPS-based, REST-like API for creating and managing
11DR feeds and subscriptions, which provides a pub/sub architectural model for the transfer of data.
12
efiacor0fa01982019-04-08 14:52:08 +000013Usage Scenarios
14---------------
15Typically, DR pub clients request the provisioning of a new DR feed.
16Once created, DR sub clients can then subscribe to the feed to receive all data published to that feed.
17
18 .. image:: images/dr_pub_flow.png
19
20
21The DR provisioning API is not meant to be used directly by DR end users (publishers and subscribers)
22for feed / subscription CRUD (create, read, update, delete) operations.
23
24Instead, prospective publishers and subscribers should use the DMaaP Bus Controller API, which will call
25the DR provisioning API to manage feeds and subscriptions.
26
27 .. image:: images/dr_bc_prov.png
28
29
30See DMaaP Bus Controller API docs for more information:
31
32`Bus Controller Feeds API <https://onap.readthedocs.io/en/latest/submodules/dmaap/dbcapi.git/docs/api.html#feeds>`_
33
34`Bus Controller Subs API <https://onap.readthedocs.io/en/latest/submodules/dmaap/dbcapi.git/docs/api.html#dr-subs>`_
35
36
37High level Architecture
38-----------------------
39The following diagram shows the high-level relationship between the system components:
40
41 .. image:: images/dr_arch_only.png
42
43
44DMaaP DR architecture uses the Eclipse Jetty server as an application server to service it's front-end.
45 * dmaap-dr-prov services all provisioning requests.
46 * dmaap-dr-node services the publishing of data to feed subscribers.
47
48DMaaP DR uses MariaDB as it's storage component for the following:
49 * DR Provisioning data. (feeds, subscribers, etc.)
LF Jenkins CI3d3b9de2020-04-08 20:23:00 +000050 * Historical logging data related to feed activity. (Publish, Delivery, etc.)