[rabbitmq-discuss] Newbee consulting question

Tomer Paz tomer.paz at gmail.com
Tue Apr 9 17:05:04 BST 2013


I am examining RabbitMQ as an AMQP broker for a workflow system that we 
wish to develop in-house, on-premise.
The closest description to our architecture is Amazon SWF. it is ~95% the 
solution concept to our requirements, but we can't use it as it is a cloud 
SaaS and our requirement is 'on-premise' :)

I was wondering How to manage distributed Tasks where the task manager 
('orchestrator') is at the data-center, 
 the workers are distributed in different physical sites (some on the same 
site, some far in other site separated by WAN),
 where the connection between the datacenter and the sites might be 
disrupted sometimes.

We don't have a major performance requirement, we need not thousands of 
msg/sec, more like 1-3k messages a minute. Each worker might work for 
minutes on a single task...

Since the requirement is for WorkFlow management, it means we want tasks 
marked done by a remote worker, will be reported back to the manager, to 
keep the State of all tasks managed in central manner.
We use that for monitoring and reports (statistics).
I have read about the RPC like pattern, prefer to avoid it (!)
I also read the tutorials about task/worker pattern which is closer to what 
we need, but we also need the capability to parallelise 'steps' (that's 
what workflow orchestration is about) within a parent task so that
some tasks in the workflow tree will be processed consequently, some in 
Assume workers are not necessarily the same. i.e. there are different task 
"types" thus different workers processing them (hence this is not a simple 
pub/sub pattern either).

It sounds like we need some kind of mixture of three patterns to pull this 
out, but I am not sure: task/worker, pub/sub and the "Topic" Exchange kind 
of routing.
Oh, and did I mention we want the architecture to be "pull" rather than 
"push" in terms of workers 'asking' the workflow manager to get new tasks 
when they are free, 
 rather than task manager pushing tasks to workers blindly.

Would love to hear some experience if there is such, with such pattern 
using AMQ and RubbitMQ in particular to communicate the tasks.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20130409/25ca3e17/attachment.htm>

More information about the rabbitmq-discuss mailing list