What property of your incoming messages can you scale out on? In the order tracking scenario, this property is the order ID. In the queue, messages for different categories may be interleaved, as shown in the following diagram:Ĭonsider the following points when deciding how to implement this pattern: Here's what the general Sequential Convoy pattern looks like: Push related messages into categories within the queuing system, and have the queue listeners lock and pull only from one category, one message at a time. However, the initial queue receives a ledger containing transactions for many orders, which may be interleaved. In this system, operations must be performed in a first-in-first-out (FIFO) manner, but only at the order level. These operations could be to create an order, add a transaction to the order, modify a past transaction, or delete an order. In a distributed architecture, processing these messages in order is not straightforward, because the workers can scale independently and often pull messages independently, using a Competing Consumers pattern.įor example, an order tracking system receives a ledger containing orders and the relevant operations on those orders. Context and problemĪpplications often need to process a sequence of messages in the order they arrive, while still being able to scale out to handle increased load. Process a set of related messages in a defined order, without blocking processing of other groups of messages.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |