A “workflow engine” is becoming the new must-have for enterprise system development. In days gone by it might have been an automatic choice to go for an expert system, Enterprise Service Bus, messaging infrastructure or big-ticket database, but those now seem a little bit passé.
There are several commercial workflow engines available, and a whole bunch of open source ones. Here’s a list of workflow engines written in Java, for example.
Boris Lublinsky has written an article at InfoQ expressing the strong opinion that writing your own workflow engine should not be an option.
I’m not sure I completely agree. For me the most telling part of the article appears near the end:
People today rarely implement their own database or O/R mapper or application server. Why is it often that people think that they should write their own workflow engine?
As it happens, I have implemented my own database, O/R mapper and application server, and found the experience invaluable in understanding the challenges and important features of such software. Writing a workflow engine would presumably be a similarly valuable lesson.