Posted by kohsuke
on January 5, 2006 at 6:59 AM PST
I posted ver.0.1 of Dalma, a continuation-based workflow engine. As the version number suggests there's still a lot to do, but it's at the point wher eyou can play with it.
Dalma makes it easy to write a program that talks to (and waits for repleis from) other systems, which are often called 'workflows'. This includes e-mail automation applications, JMS, and SOA. There are many workflow engines available, but what makes Dalma interesting is that it's using continuation , and thereby eliminate event-driven style programming (and associated state persistence.)
The ver.0.1 release of Dalma consists of three major pieces:
- Dalma engine , which is the heart of the workflow engine
- Dalmacon , which wraps dalma engine into a container, so that you can host your workflow applications in it passively.
- WebUI , which wraps dalmacon into a web application, so that you can run dalmacon in a web server and get GUI monitoring/management interface.
The WebUI would be the easiest to play with, since you can install it by just dropping it into your web server.
But this separation allows you to for example embed an engine as a part of your application. I'm also planning to allow the container and the webUI to run on different machines, which brings more deployment flexibility.
The download bundle also contains a sample workflow (which is an e-mail based hangman game), and there's also a Maven plugin to make the development process even easier. Some implementations of I/O connectivity (which are called "endpoints") are also bundled, including e-mail, IRC, and JMS.
Take a look at the 10 minutes guide to try it out!
I plan to continue working on this. In particular, I'm trying to implement a JBI endpoint, so that Dalma can be used to process JBI messages. I'm also hoping to use this to automate some of the java.net administration work --- like approving a project and so on. I appreciate any feedback.