1 Reply Latest reply on Jul 9, 2013 4:09 AM by Maciej Swiderski

    Is jBPM the right tool for what I'm trying to achieve?

    Egor Kolesnikov Newbie

      Hi everyone,


      I've been researching jBPM in on-again-off-again mode since, well, pre-v3 times, circa 2005. Every time it happened to be "not quite what I need", or there was a feature promised "in a future release" and I usually moved on to something else - usually some simple homebrew workflow solutions that nevertheless did their job fine.

      Now that it's 2013 and jBPM is at 5.4.0, I kinda started thinking that I may not understand the very purpose of it.


      If we take on something as simple as bug tracking or ticketing system - there are tons of possible configurable workflows that just scream "use jBPM dammit!"

      Let's start with email confirmation after registration: Start -> call "registration email" service -> human task (wait for email link to be clicked) -> call "confirm registration" service -> End. Loops for "re-send confirmation mail" are optional.


      Now after I've added maven dependencies for jbpm-bpmn2 and jbpm-human-task-core, there are already TONS of transitive dependencies included - I'm especially frustrated seeing spring and CXF since the rest of the application is CDI and JAX-RS.

      Additionally, the whole "Human task" thing looks incredibly complicated compared to the task they actually accomplish.


      Hence, the question - am I doing it wrong? Was jBPM built with something else in mind?

        • 1. Re: Is jBPM the right tool for what I'm trying to achieve?
          Maciej Swiderski Master

          Egor, jBPM can definitely support your case but it is much more capable than this and thus you see all these dependencies. Some of them are transitive dependencies due to various features require them but it does not have to mean you will need them too. For example CXF are used for web service invocation and are brought to the picture by jbpm-workitems. If you're not going to use web service feel free to exclude these dependencies which will make your end application much smaller and without not needed libraries.


          Human task module is indeed complex but it has ist reason to be like this - WS HT specification and the features in brings such as life cycle of the task and its operations.


          If you use CDI and REST you should definitely look at version 6 as it's built for CDI - complete human task module is redesigned to follow CDI approach. That might be much better fit for your case.