ADR - Project & Workflow Services - Core Services Integration - Solution Overview
This ADR highlights the solution overview on how OSDU core services would integrate with Project & Workflow Services
Status
-
Proposed -
Trialing -
Under review -
Approved -
Retired
Context & Scope
We will extend the services that store data in the OSDU to support the concept of a 'collaboration' context. This would work similarly to 'data partition id' in that it acts as an isolation boundary for data. When a collaboration context is provided for the same ID different values can be returned depending on changes that have occurred in that context. A user optionally supplies this context on read or write requests to the OSDU® Data Platform services.
The collaboration header will have a series of directives that can be extended overtime to meet changing needs. For example at its simplest it would contain only the collaboration id of concern e.g.
x-collaboration: collaboration-id=123
We will treat collaboration as a separate service in the OSDU® Data Platform. The collaboration supports creation of a collaboration instance and is the source of truth of what collaborations exist in the OSDU® Data Platform.
It acts as a configuration service similar to the partition service today. It holds a free form key value map that can be used to hold the configuration for a collaboration e.g. what applications can use the collaboration what events do they need etc.
A proxy sits over the solution. This could be implemented in the Istio layer for example.
When a collaboration context is provided it validates that the given id does indeed exist before forwarding. This would require the use of http caching and etags to not degrade performance.
During the development phase it also acts as whitelist of services that support the collaboration header. To prevent corruption of existing deployments any services that do not support collaborations need to be blocked from use when the client provides this.
Consumers should not be affected as the OSDU® Data Platform services provide data based on the context. So if no context is provided it should return the same data as it would today i.e. system of record data.
A V2 of the record change event is also created. This version of the event provides the collaboration context information. Both the V1 and V2 event will be published by the system and notifications service.
This allows consumers to be control when they switch to support the collaboration context to avoid corruption in downstream systems.
'P&WFS Tech ADR Input - Core Service' folder consists of multiple ADRs for requirements defined in ADR #1 - Summary. Following sequence diagram goes over core service interactions based on workflows defined by ADR #7 - Application Integration.