Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>A third approach is to use a messaging system with multiple agents. This approach is ideal for very complex scenarios.</p> <p>Here's a scenario:</p> <blockquote> <p>The user runs a Command to delete an Entity (Order, Customer, etc). The tool the user is working with creates a message in the work queue that represents the user's intent (e.g. "Delete Customer 123")</p> <p>The message is handled by one or more agents. Each agent is specific to a part of the larger operation, and listens only for relevant messages. All agents work within a single distributed transaction. This means each agent has a very narrow, specific scope, but any agent can reject the overall operation. If an agent needs to perform other sub-tasks it can queue additional messages for those operations (such as deleting each order belonging to the customer).</p> </blockquote> <p>This approach scales very well, especially for very complex interactions. It avoids any one system having to know about all others. Each agent knows what messages to handle, and handles a very specific task related to that message.</p> <p>It's more setup initially, but is very extensible (you can add new agents, messages, etc without impacting the existing ones).</p> <p>If you decide to use this approach take a look at <a href="http://masstransit-project.com/" rel="nofollow">MassTransit</a> for a framework (there are others as well). If you're working in .NET it's a very nice system that's powerful, but approachable. It's <a href="http://docs.masstransit-project.com/en/latest/overview/saga.html" rel="nofollow">Sagas</a> are especially nice for coordinating complex interactions between multiple agents.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload