...
The general reasons behind a message ordering are:
- preservation of message orderguaranteeing the order of messages
- controlling the correct order is important to stay in sync between sending and receiving registry
- some messages only make sense if processed in the correct order
- making transparent (no) messages are missing
- in a perfect world this would not be needed and the current timestamps + reference codes would be sufficient. However e.g. in the case that the receiving registry collects messages from the queue, but looses those messages afterwards in a fully automated system, they will not know (in all cases) messages are missing, and even if they do, they might not know which ones.
- proper sequencing will make error handling and issue tracing easier
...
- A central sequence number provided curated by SMC. This sequence number will be drawn from a separate sequence per receiving registry (sequence of integers without leaps).
For the message ordering to work properly there are different responsibilities with of the different parties invovled:
...
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 responsibility:
Central system provides the same sequence number as below as part of the meta block as in the answer in each connect message (messages to another Registry).
Central system provides the same sequence number as above as part of the meta block in the message retrieved by the recieving registry.
- Receiver responsibility:
The sequence number would be is part of the meta block. The receiver has to check that the sequence number is correct (no numbers missing) and only process the messages if that is ok. Otherwise go back to the central system and claim the missing message.
...