Workflow management system in Erlang/Mnesia?
Bud P. Bruegger
Tue Jan 25 00:28:34 CET 2000
I came across Mnesia and Erlang these days and got the impression that it
may be a cool environment to implement an open source, web-based,
distributed, fault-tolerant workflow management system that we intend to
use as the basis for a laboratory management system. I'm writing this
message in the hope to get feedback on whether Erlang/Mnesia is a good
choice for this and whether my expectations are realistic.
The workflow management system will manage tasks that are assigned to some
organizational unit for execution (departments, persons, etc.), require
certain input resources (lab samples to be tested, results of preliminary
steps), and produce certain output resources. Visualizing this as graphs,
you can see the workflow of tasks whose dependencies are modeled in the
form of shared resources. The system forsees a very high level of
configurability and flexibility and all workflows can be visually edited
ad-hoc. In larger organizations (multiple departments), such a system is
naturally distributed. Since the application is rather mission critical,
fault-tolerance is quite important.
My current idea is to implement a distributed database and most of the
business logic in Erlang/Mnesia while using one to several java application
servers (Enhydra) for the presentation layer that serves HTML to standard
Some concrete questions I have include the following:
* does Erlang/Mnesia sound like a good solution for this problem in general?
* how resource hungry is Erlang (RAM, processor); is it realistic to run
such an application on a cluster of small machines (Intel PCs under Linux)
much rather than some few super servers?
* is there a way to foresee the bandwidth and latency requirements such an
application would put on the network? Would it run decently on 10Mbit
Ethernet, 100Mbit switched, etc.
* does Erlang automatically offer load-balancing distribution of processing
similar to pvm? If not, can this be added and with how much effort?
* would it be possible to handle small text notes and descriptions with
Mnesia (multi line text fields) or is this a datatype that Mnesia does not
* and finally, is there a potential to find people in the Erlang community
who are interested in collaboration in such an open source project or is
the community mostly limited to telephony applications?
Many thanks in advance for any feedback you can give me.
Bud P. Bruegger, Ph.D. | mailto:
Sistema | http://www.sistema.it
Information Systems | voice general: +39-0564-418667
Via U. Bassi, 54 | voice direct: +39-0564-418667 (internal 41)
58100 Grosseto | fax: +39-0564-426104
Italy | P.Iva: 01116600535
More information about the erlang-questions