Study on NCMPAsyncRequestResponse event schema
Analysis on Forwarded Event
We are using 'NCMPAsynRequestResponse' event schema to consume 'DMIAsynRequestResponse' event and forward to the client after mapping to different properties.
NCMPAsynRequestResponse has 2 object properties other than individual properties. The below 2 has the same properties.
Event :
While mapping properties from 'DMIAsynRequestResponse' to 'NCMPAsynRequestResponse, We are not mapping anything to this property object/type. We can find the same on the below screenshot.
Forwarded Event :
While mapping properties from 'DMIAsynRequestResponse' to 'NCMPAsynRequestResponse', We are mapping all the properties to the 'ForwardedEvent'.
Particularly response-Data from 'DMIAsynRequestResponse' is mapped to additional properties of 'NCMPAsynRequestResponse → ForwardedEvent'
Existing schemas with properties
# | properties | NCMP Async Headers/External Props | NCMP Async has Forwaded-Event | NCMP Async has Event | DMI Async Headers/External Props | DMI Async has Event-Content |
---|---|---|---|---|---|---|
1 | eventId | * | * | * | * | N/A |
2 | eventCorrelationId | * | * | * | * | N/A |
3 | eventTime | * | * | * | * | N/A |
4 | eventTarget | * | * | * | * | N/A |
5 | eventType | * | * | * | * | N/A |
6 | eventSchema | * | * | * | * | N/A |
7 | eventSchemaVersion | * | * | N/A | * | N/A |
8 | eventSource | N/A | * | * | * | N/A |
9 | response-data-schema | Event/FE | * | * | Event-Content | * |
10 | response-status | Event/FE | * | * | Event-Content | * |
11 | response-code | Event/FE | * | * | Event-Content | * |
12 | forwardedEventData | Fwd Event | * | N/A | N/A | N/A |
13 | response-data | Event | N/A | * | Event-Content | * |
Steps Need to take to update
TO check with client that anyone using this schema. If yes, We need to deprecate this version and create the new version.
To keep schema consistent map all the properties of 'DMIAsynRequestResponse' to 'NCMPAsynRequestResponse → Event' instead of 'NCMPAsynRequestResponse → ForwardedEvent'.
For now 'response-data' of 'DMIAsynRequestResponse' is mapping to 'additional-properties' of 'forwardedEvent' in 'NCMPAsynRequestResponse' .
'response-date → payload' should be matched to the 'forwardedEvent → forwardedEventData →forwardedEventPayload ' .
If the above mapping is wrong, We need to update the mapping to the appropriate one.
If we agreed with team to use 'Event' instead of ' forwardedEvent', We need to introduce the 'schemaVersion' property in 'Event' schema
If the above point is agreed, We need to keep only the payload inside the 'Event'.
Conclusion
The schema consists of duplicated data.
Instead of using the type 'Event' we used the new type 'ForwardedEvent'.
CPS 'additionalProperties (privateProperties)' field is clashed with the framework generated 'additionalProperties' field.
Proposed the new schema at CPS Events Structure for the agreement.
Once the above one agreed, We work the same at CPS-1660: Update the mapping between 'DMIAsyncRequestResponse' to 'NCMPAsyncRequestResponse'Open
Identified 'response-data' was miss-mapped to ForwardedEvent → (additionalProperties ( generated by the framework)).