Thanks a lot John. That clears up some stuff. I hope to start working
on a proof-of-concept over the next couple of days and I'll let u know
how it works out.

I do have a couple more questions. I assume this will be ok but if I
setup everything like you suggested and have both instances of my app
create a engine and have the workers sharing the same storage will
there be any issue if you have wait expression like below? I just want
to ensure that the  accounting task will only get executed once on day
30.

sequence do
  accounting :task => 'invoice'
  wait '30d' # 30 days
  accounting :task => 'check if customer paid'
end

Also, another question with using the wait expression above. Say on
day 29 we have an outage where the system is down for couple of days.
When we bring everything up on day 31 what will happen to the flow
above? Will the account task trigger or do we have to somehow manually
fix the issue.

Thanks again,
Steve

On Sep 16, 11:29 am, John Mettraux <[email protected]> wrote:
> On Thu, Sep 16, 2010 at 08:08:20AM -0700, SteveG wrote:
>
> > In our case we have a rails application which is load balanced across
> > 2 machines. I would like this application to be able to launch
> > processes in ruote and also participate within the process workflow. I
> > am thinking that the best approach would be to start up a ruote-kit
> > application and the the existing app communicate with ruote thru REST.
>
> > Is that the correct approach for a load-balanced application. If I
> > take that approach is there a way to load balance the ruote-kit
> > application? If not what are my options? In order for me to go ahead
> > with using ruote I need either a way to load balance the workflow
> > engine or provide a fail-over strategy in case the machine with ruote-
> > kit goes down.
>
> > Also, if I am reading the documentation for rutoe-kit correctly, it
> > seems that ruote-kit only supports Ruote::FsStorage for storage. I am
> > looking under the Running Workers section in the README. If that is
> > indeed the case I guess load-balancing the ruote-kit app is out of the
> > question unless there is some type of shared drive invoked.
>
> Hello Steve,
>
> welcome in this mailing list.
>
> Ruote-kit supports any of the storage implementation for ruote. It's just a 
> matter of configuration.
>
>  http://ruote.rubyforge.org/configuration.html
>
> > What are some of the integration strategies that you guys are using?
>
> For your case I'd say look at ruote-dm or ruote-beanstalk (maybe ruote-redis).
>
> Then given 1 storage shared by your 2 machines, you could have 1 engine + 1 
> worker in each of your instances.
>
> If you have a third machine, you could place the worker and the storage 
> together and only have engines in your front machines.
>
>   engine = Ruote::Engine.new(Ruote::Worker.new(storage))
>
> starts an engine + worker coupled to the given storage.
>
>   engine = Ruote::Engine.new(storage)
>
> only starts an engine (in ruote 2.1.x it became a mere dashboard). You can 
> then have a worker (or an engine + worker) on the 3rd machine
>
> FsStorage could be OK with a network drive, but it relies on file locking and 
> IIRC, that doesn't play well with some of those filesystems.
>
> Please note that we're actively working on ruote 2.1.11 and that we recommend 
> using ruote-kit edge (http://github.com/tosch/ruote-kit).
>
> Using REST for communication is probably only interesting if your front is 
> not a Ruby front or if you really cannot use any of the advanced storage 
> implementations.
>
> Questions are welcome, best regards,
>
> --
> John Mettraux -http://jmettraux.wordpress.com

-- 
you received this message because you are subscribed to the "ruote users" group.
to post : send email to [email protected]
to unsubscribe : send email to [email protected]
more options : http://groups.google.com/group/openwferu-users?hl=en

Reply via email to