gs1 / EPCIS

Draft files being shared for EPCIS 2.0 development
Other
22 stars 7 forks source link

Detection / handling of duplicate events #48

Closed mgh128 closed 3 years ago

mgh128 commented 3 years ago

@dakbhavesh recently asked about provision in EPCIS spec for detection of duplicate events. It is possible through event hash generator? Define status code if it is to be supported (409 Conflict or 302 Found) ?

Currently, EPCIS v1.2 makes no provision for detection of duplicate events. It is concerned with duplicate AS2 messages, duplicate query names or duplicate subscriptionIDs for standing queries.

The group need to decide if EPCIS 2.0 should make any provision for detection of duplicate events - or remain silent on this, as in EPCIS v1.2.

If the group decide that EPCIS 2.0 should support detection of duplicate events, this must be done very carefully. It is important to remember that an error declaration event might appear to be an identical copy of the original erroneous event except that the error declaration event include an ErrorDeclaration, which may point to corrective event IDs.

Because an erroneous event might have specified an eventID that was not null, the corresponding error declaration event would be required to specify the same value of eventID (in order to mirror the erroneous event), while adding an ErrorDeclaration.

This means that a simplistic approach to detection of duplicate events that would reject any recently captured event that contains an eventID that is already present in the repository is not a valid approach. Such an approach would need to be modified to tolerate capture of an event with an existing eventID if the new event contains an ErrorDeclaration (and serves as an error declaration event pointing back to an event already within the repository).

We need to take great care that any approach to detection and handling of duplicate events must not reject valid error declaration events that may quote the same eventID value as the erroneous event that they reference / mirror.

CraigRe commented 3 years ago

Complement Mark's flowchart (in section focused on Error Declaration) with 1-2 line disclaimer (Craig).