I have an architectural problem which is driving me crazy.
The requirement is to process of a list of messages on a bus that must be executed sequentially, because of requirements process. So I have to execute the Message number 1 always before than Message 2. All messages of the same customer are logically grouped by a unique customer code. If a message crashes I have to block the entire message list belonging to that customer, and I have to excecute them again afterwards (without losing them otherwise there is a mismatch with the calling system ) All my doubts are about the scalability; let me explain : Which solution could allow me one day to "scale up" if I am forced to process messages sequentially ? I can't increase the number of Worker which process the messages on the bus because, in that case, it could happend that the Message 2 will be processed as first (and it will send me an error because the message n. 1 is not finished yet ) Could you suggest me solutions / patterns / best practices that can be used on the bus ? Do you think that a tool such as BitzTalk can help in this situation?
Thanks in advance