...
There are several possibilities to realize this:
Option A):
intrinsic ordering only:
Sender Responsibility: The sender is responsible for ensuring the desired order of calls to the Connect APIs. If api calls are to be scheduled / batched, it is suggested that the sender maintain a queue of outgoing calls / messages so that message sequence is persistent in the event of system failure.
Receiver Responsibility: The receiver is responsible for monitoring the availableMessages queue and process retrieval calls to the Connect APIs in the order specified.
Pro:
no additional information needed (ordering based on timestamps and incoming order SMC service)
Con:
only implicit orderingno explicit indicator on missing messages on receiver side
Option B):
ordering via local sequence number:
Sender Responsibility: The sender has to add a reciever receiver specific sequence to each and every message.
Receiver Responsibility: The sequence number would be part of each message itself . The reciever receiver has to check that the sequence number is correct (no number missing) and only process the messages if that is ok. Otherwise go back to the central system and claim the missing message.
Pro:
most detailed information as the number is part of the whole communication proess
Con:
alot of overhead in the communicationextra work at each registryeach registry has to maintain a sequence number for each new registry (peer to peer behaviour)extra work for each registry when a new registry is added to the system
error prone asindepended implemenationsindependent implementations are needed and no control by the centralized system
Option C):
central sequence number provided by SMC:
option C1: one number sequence per receiving registry
option C2: one number per sending / receiving registry combination
Sender Responsibility:
The sender is responsible for ensuring the desired order of calls to the Connect APIs. If api calls are to be scheduled / batched, it is suggested that the sender maintain a queue of outgoing calls / messages so that message sequence is persistent in the event of system failure. Make sure the next message is sent only when the status of the previous one has been marked OK by SMC.
...
Central system provides the sequence number as part of the meta block as anwser answer in each connect message (messages to another Registry).
...