Timeout-based Message Processor
Clients acknowledge message receptions and processing to ensure that all messages are handled by an application. If a message is not acknowledged after a certain timeout, it is processed by a different client.
How can an application process messages while guaranteeing that all messages handled by the application are processed at-least-once? |
Context
A Message-oriented Middleware uses Timeout-based Delivery to ensure that messages are received successfully by at least one client. Additionally, it shall be assured by the application that a message has also been properly processed after its reception.
Solution
Instead of sending an acknowledgement right after receiving a message, a timeout-based message processor sends this acknowledgement after it has successfully processed the message.
Related Patterns
Timeout-based Delivery, Watchdog, Transaction-based Processor