PS: The itinerary is created based on the initial message contents... ;) The activities are prewritten and configurable ofcourse.
--
You received this message because you are subscribed to the Google Groups "masstransit-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to masstransit-dis...@googlegroups.com.
To post to this group, send email to masstrans...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/masstransit-discuss/a2dac348-133f-49f2-8be7-0332a819dc82%40googlegroups.com.
So this use case is exactly why Courier was created. The ability to dynamically build an execution path through a distributed system. So you're definitely on the right track.In the case of human (or even system) intervention, however, you need to use a combination of tools to make it flow together nicely.Creating a state machine, using Automatonymous, would allow the routing slip to run to a certain point, and then terminate (either early, or at the point in which interaction is required), using business events to advance a state machine to the point of interaction. Then, the state is visible in the table, and the external system (person, or whatever) can trigger an event signaling that the interaction has completed, along with any new data that's been added (such as a confirmation/authorization number, or even an approver name). The state machine, upon observing the event, would then send a command to execute any remaining steps of the routing slip.This does require some state to be maintained if the individual activities require it, however. What we've done is have an initial activity that gets added in both execution paths, which parses out the original document and revises the itinerary based on the document content. This way, we can reuse many of the same activities by having the document loaded from the initial receipt, or from durable storage in the event an interaction was required. We have used MongoDB or similar storage systems to keep around original documents in this way.By using the state machine and events, we're able to well handle the case where two approvers might try to approve the document at the same time, since the approved event would no longer be accepted by the state machine if it's already been approved. You can also combine this with Quartz and MassTransit scheduling to be able to schedule a time at which if the document hasn't been approved, perhaps it gets escalated or alerted in some way to avoid being missed by an approver who may be out of the office.Hopefully this gives you some ideas of where to go next!
On Mon, May 30, 2016 at 5:36 AM, Kenneth Avner <ken...@avner.no> wrote:
PS: The itinerary is created based on the initial message contents... ;) The activities are prewritten and configurable ofcourse.
--
You received this message because you are subscribed to the Google Groups "masstransit-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to masstransit-discuss+unsub...@googlegroups.com.
To post to this group, send email to masstrans...@googlegroups.com.
I believe this must be the easiest way forward with my current limited experience with the framework. Someone please correct me if there are more elegant paths.