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

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/AN/AN/A
13response-dataEventN/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 - Getting issue details... STATUS
  • Identified 'response-data' was miss-mapped to ForwardedEvent → (additionalProperties ( generated by the framework)).
  • No labels