Adding docs for CADI
[dmaap/datarouter.git] / docs / architecture.rst
diff --git a/docs/architecture.rst b/docs/architecture.rst
new file mode 100644 (file)
index 0000000..6f29e5d
--- /dev/null
@@ -0,0 +1,56 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Architecture
+============
+
+Capabilities
+------------
+The DMaaP Data Router (DR) provisioning API is an HTTPS-based, REST-like API for creating and managing
+DR feeds and subscriptions, which provides a pub/sub architectural model for the transfer of data.
+
+The DR API also supports `AAF CADI authorization <https://docs.onap.org/en/latest/submodules/aaf/authz.git/docs/sections/architecture/cadi.html#authorization>`_.
+
+To use this feature, the API client must provide a valid AAF AppID / MechID with each request.
+To enable this feature, see the :ref:`configuration` section.
+
+.. note:: In future releases, AAF CADI auth will be enabled by default.
+
+Usage Scenarios
+---------------
+Typically, DR pub clients request the provisioning of a new DR feed.
+Once created, DR sub clients can then subscribe to the feed to receive all data published to that feed.
+
+   .. image:: images/dr_pub_flow.png
+
+
+The DR provisioning API is not meant to be used directly by DR end users (publishers and subscribers)
+for feed / subscription CRUD (create, read, update, delete) operations.
+
+Instead, prospective publishers and subscribers should use the DMaaP Bus Controller API, which will call
+the DR provisioning API to manage feeds and subscriptions.
+
+   .. image:: images/dr_bc_prov.png
+
+
+See DMaaP Bus Controller API docs for more information:
+
+`Bus Controller Feeds API <https://onap.readthedocs.io/en/latest/submodules/dmaap/dbcapi.git/docs/api.html#feeds>`_
+
+`Bus Controller Subs API <https://onap.readthedocs.io/en/latest/submodules/dmaap/dbcapi.git/docs/api.html#dr-subs>`_
+
+
+High level Architecture
+-----------------------
+The following diagram shows the high-level relationship between the system components:
+
+   .. image:: images/dr_arch_only.png
+
+
+DMaaP DR architecture uses the Eclipse Jetty server as an application server to service it's front-end.
+   * dmaap-dr-prov services all provisioning requests.
+   * dmaap-dr-node services the publishing of data to feed subscribers.
+
+DMaaP DR uses MariaDB as it's storage component for the following:
+   * DR Provisioning data. (feeds, subscribers, etc.)
+   * Historical logging data related to feed activity. (Publish, Delivery, etc.)
\ No newline at end of file