For some time I've wanted a really simple way to use Java code to handle asynchronous flows of events cleanly without resorting to using XML with things like BPEL; particularly for implementing protocols like master/slave or electing a leader and so forth. BPEL is great at orchestrating web services; sometimes you've just got a few simple POJOs to orchestrate (such as running tasks etc)
We've now got a simple little Java library called BeanFlow; I've made a stab at documenting it... http://servicemix.org/site/beanflow.html its not intended to compete with BPEL; its more for when developers are happy to let regular Java code to do most of the work and just need some of the workflow concepts like fork, join, suspend and so forth into the Java programming language itself. I've been quiet surprised by (i) how small it is and (ii) how simple and reusable it is. It currently integrates quite nicely with Java 5 features like Executor, Runnable and Callable/Future as well as having a more traditional workflow-like model. As usual, feedback is most welcome. -- James ------- http://radio.weblogs.com/0112098/