Hi
I would use the message queue protocol. An azure service bus provides these features and was built to provide the integration pattern to the use case you are high levelling.
The service bus queue has two features that controls the ordering whilst added to the queue. Sequence number and timestamp. Read more in link below.
https://learn.microsoft.com/en-us/azure/service-bus-messaging/message-sequencing
Furthermore you can consume messages from this queue in two ways simply put. Either you consume it directly which means the oldest message with lowest sequence number is removed from the queue immediately upon you retrieving it or you can retrieve the message firstly and agree with the queue to lock the queue and this message until you send a settlement message. This last feature is used when you need to make sure that the message broker has completed it services before next message can be retrieved. Read more below.
https://learn.microsoft.com/en-us/azure/service-bus-messaging/message-transfers-locks-settlement
Please let me know if the answer was helpful by accepting the solution.
Mox