Study on NCMPAsyncRequestResponse event schema

Analysis on Forwarded Event 

  1. We are using 'NCMPAsynRequestResponse' event schema to consume 'DMIAsynRequestResponse' event and forward to the client after mapping to different properties.

  2. 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



#



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