Say I have a banking app (I am not developing a banking app, however I believe it gets my point across as it is used in a lot of Event Sourcing examples), which generates the following messages:
1) Apply £110 withdrawal to account A
2) Apply £70 credit to account A
3) Apply £99 withdrawal to account A
4) Apply £42 withdrawal to account A
Say that account A does not have an overdraft. Now say that the third message fails because of an error specific to that message only e.g. serialization error. In this scenario message 3 is added to the NServiceBus error queue.
The way I understand it is that a tool like Service Pulse is used by an Administrator to process the error queue in isolation. Say it takes two hours for the administrator to process the error and within that time the forth transaction is complete. Does that not mean the forth transaction is processed before the third transaction and the account could go into the overdraft?
I have completed an online course for NServiceBus and I am still not clear on this. I have also looked at similar questions here for example: In CQRS how to work with NServiceBus to update Command and Query store