Packages
mozart
0.1.0
1.0.1
1.0.0
0.9.8
0.9.7
0.9.6
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.9
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.8
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.8
0.6.7
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.11
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Mozart is an Elixir based BPM platform. It provides a powerful and highly readable DSL for implementing executable business process models.
Current section
Files
Jump to
Current section
Files
README.md
# What is a Business Process?
Companies large and small have business processes that they regularly execute. Let's just call them "processes" for brevity's sake. Insurance companies have processes to process a claim. Banks have processes to approve loans. The government have processes to award contracts.
# What is Business Process Management (BPM)?
The goals of Business Process Management are:
* More Reliablibility
* Faster Process Execugtion
* Reduced Training Requirements
* Incremental Process Improvement
* Provide Process Metrics
* Cost Savings
Business Process Managemnt is implemented with the aid of a BPM platform of some sort. There are are dozens of commerical BPM platforms and they can be quite expensive, potentially costing millions of dollars a year.
# When is BPM Applicable
This is difficult to answer exactly, but BPM may be applicable when:
* Processes are performed on a regular basis.
* Process are well defined.
* Multiple business groups and people participate in process execution.
# Mozart
Mozart will be a open source BPM platform. It is written in Elixir and is in the early stages of development. A distinguishing characteristic is that, instead of using BPNM2, it will provide a text-based BPM modelling language that is highly readable by process experts with no programming experience. The modelling language is inspired by AWS Step Functions. See [AWS Step Functions](https://docs.aws.amazon.com/step-functions/?icmpid=docs_homepage_appintegration).
The modeling elements currently supported are:
| Element Type | Description |
|-----|-----|
| User Task | Performed by a user |
| Service Task | Performed by calling a service. |
| Subprocess Task | Performed by calling a subprocess. |
| Timer Task | Waits for expiration of a timer. |
| Receive Task | Waits for a subscribed PubSub event. |
| Send Task | Sends a PubSub event. |
| Decision Task | Perform by evaluating a decision block (Tablex) |
| Exclusive Gate | Selects one of many process paths. |
| Parallel Gate | Initiates two or more process paths. |
| Parallel Join | Sychronizes on completion of two or more process paths. |
## Current Development Status
* There is a working process execution engine.
* Each business process, including each subprocess, runs in it's own GenServer process.
* Example business process definitions are in test_models.ex_doc
* Business process models are, for now, written using Elxir data structues. (See Todo Section)
* The examples can be run with "mix test".
## Installation
The package can be installed
by adding `mozart` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[
{:mozart, "~> 0.1.0"}
]
end
```
## Todo
* Publish 0.1 release to hex.
* Develop a textual business processs modeling language with will be translated at runtime into native Elixir data structures. The language will be highly readable to process modelers with no programming experience.
* Develop GUIs for:
* Runtime trouble shooting and monitoring.
* User and group administration.
* User task assignment and execution.
## Providing Feedback
If you have questions, comments, suggestions, etc. feel free to open issues in GitHub.