ADR: Replay API
Two New API in Storage service as part of Replay flow will be introduce in the storage service.
- [] Proposed
-
Trialing -
Under review -
Approved -
Retired
Context & Scope
This ADR is centered around the design of the new replay API within OSDU's storage service which is introduced as the part of the Replay ADR. The purpose of this Replay API is to publish messages that indicate changes to records, which are subsequently received and processed by consumers. It's important to note that the handling of these messages follows an idempotent process.
Terminology
Name | Explanation |
Record | The record is stored in OSDU Data Platform in two parts, i.e., document database, which contains basic data (id, kind, legal information, and access permissions), and file storage in a Java Script Object Notation (JSON) format, which contains other relevant information of the record. We are interested in the document database part. |
Tradeoff Analysis
The new APIs does not represent a breaking change of any other API, and consequently neither for the consuming applications. Only concerned-consuming applications would benefit from this new feature, while it remains entirely transparent for others.
Additional Requirement
The newly introduced APIs must facilitate Collaboration workflows through the utilization of the x-collaboration header. Additionally, the replay mechanism should ensure the accurate publication of collaboration context information in the corresponding event.
Decision
The proposal is to provide POST and GET Replay API -
The new APIs does not represent a breaking change of any other API, and consequently neither for the consuming applications. Only concerned-consuming applications would benefit from this new feature, while it remains entirely transparent for others.
API fields | Explanation |
kind | It specifies to what Kind the schema belongs to. [optional] |
repalyId | It represents status id. [required] |
operation | Define the replay operation to be carried out. [required] |
filter | Define based on which field the record is selected. [optional] |
API spec swagger yaml -ReplayAPISpecs.yaml