Kris Verlaenen [
https://community.jboss.org/people/KrisVerlaenen] created the discussion
"Re: general queries about jbpm"
To view the discussion, visit:
https://community.jboss.org/message/720361#720361
--------------------------------------------------------------
Hi,
- Has some performance/scale testing been done for jBPM 5 and if yes then I please get a
pointer to the results?
Yes, we have done performance / scale testing (and are still doing this as part of the
productization process), and these are used to make sure we can detect regressions, memory
leaks etc. In general, we don't publish these however, as the results depend heavily
on the hardware you're using, what process you're testing, how the engine is
configured, the architecture you are using, etc. Our recommended approach is to set up a
prototype to check performance and if necessary check what you can do to improve this (as
there are numerous ways to scale this). I did a blog entry about performance a long time
ago, but it might still serve as a basic reference:
http://blog.athico.com/2009/06/drools-flow-performance.html
http://blog.athico.com/2009/06/drools-flow-performance.html
- Any pointers on how to deploy jBPM in a high scale enviroment where we have manage 10s
of thousands of workflows concurrently?
That's a difficult question to answer without knowing more about the problem domain
itself. The number of active instances usually isn't a limiting factor, as most of
those will probably be inactive (waiting for some input), and will be stored in the
database, so in that case there will just be thousands of rows in the database. Usually
the number of requests / s is important though, as this relates to the actual processing
of these workflows, and processing power is of course limited. One session will in
general be able to support quite a number of requests per second (see my advice on
prototyping to get an idea in your specific case). If this is unsufficient, you can start
looking at an architecture where multiple sessions are used to handle requests. If your
problem domain can be divided in independent sections, that you can just have multiple
sessions running completely independently, in parallel. Since you can have any number of
sessions on any number of machines, this makes it very scalable.
- From the documentation it seems like the following is possible but it would be great if
someone can confirm this:
- Developers can write domain specific activities and 'publish' them to some
repository (Guvnor?)
- Users can use the web front end to build workflows that compose these domain
specific activities
Yes, we use the term service repository (which could be url or file based). You can them
import these into your Eclipse workspace or Guvnor package so you can start using them in
your processes.
For an example of a twitter service:
http://kverlaen.blogspot.com/2011/10/introducing-service-repository.html
http://kverlaen.blogspot.com/2011/10/introducing-service-repository.html
- Are there any good samples around building these domain specific activities?
There are some simple examples in the documentation and the jbpm-workitems module contains
a number of implementations that we support out-of-the-box. The human task service itself
is also an example. But as you will see, the handler code is usually relatively simple,
as it's integration code that usually just calls existing services.
Kris
--------------------------------------------------------------
Reply to this message by going to Community
[
https://community.jboss.org/message/720361#720361]
Start a new discussion in jBPM Development at Community
[
https://community.jboss.org/choose-container!input.jspa?contentType=1&...]