Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

BeanFlow is a lightweight Java library for building flows workflows using beans to orchestrate events. You can think of BeanFlow as a simple alternative to BPEL where the flows workflows are all specified and implemented using Java code rather than declarative XML.

...

Now you certainly can use things like BPEL to solve these kinds of problems. However often this is a bit heavy weight & complex and you just want to have a bean based flow using regular Java code to represent the flow.

Transforming the traditional workflow approach

One of the main goals of BeanFlow is to reuse what the Java platform is good for in the workflow space; then supplement it with missing abstractions rather than inventing the wheel in a sub-optimal way.

Traditional approach

BeanFlow approach

use a declarative workflow definition to specify a workflow

write a Java class

use workflow language to write loops, manage state, deal with persistence

use regular Java code (if/for/while)

implement a generic state and persistence framework for workflow instances

use regular Java fields in your workflow class, then use JDBC/DAO/JPA to deal with persistence

Use cases

When working with concurrent or distributed applications there are many use cases for needing to orchestrate among multiple concurrent events. Here are a few examples from our use cases implementing ServiceMix and ActiveMQ

...