New versions: PLM and FIN

Short recap. As you may know, SAMPLE application recently released for Elixir is an example of how to use N2O, NITRO and KVS libraries. N2O is a basic protocol router with Message Queue (GPROC, SYN, EMQTTD) Caching (ETS), and Encoding (JSON, BERT, BER) facilities. NITRO is an HTML5 DSL for web applications and KVX is an abstraction database layer designed and tuned for Erlang virtual machines.

synrc/n2o 6.6
synrc/nitro 6.6
synrc/kvs 6.6

SAMPLE application is a perfect doorway into Erlang programming. It could be transformed into CRM system with file upload and attachments. This is a basic of enterprise automatization. SAMPLE application contains mainly front-end part and NITRO demo.

The backend part of CRM application we call CHAT. This is an example of robust and simple barebone for CRM backend, instant messaging system, or server of mailbox delivery protocol. CHAT provides mainly ASN.1 and KVX demo.

synrc/sample 5.11 Erlang
synrc/chat 3.4 Erlang
o7/sample 6.6.6 Elixir
o7/chat 3.7 Elixir

Next (business) level of enterprise automatization is a formalization of business processes, that could be achieved with Business Process Engine (BPE) that conforms to BPMN semantics. This project is deployed in the biggest eastern European bank: at scale (30 million users). It has a dead simple architecture with 1 to 1 Erlang and BPMN process correspondence (deep embedding). You may think of BPE process as FSM. The arguments that are being passed as parameters as Erlang records the naturally specified business objects with Erlang type spec. It can be stored in chains in KVX and displayed at NITRO pages with FORMS library that compiles XFORMS to HTML5. FORMS and BPE was slightly changed in 4.6.

synrc/bpe 4.6
synrc/form 4.6

PLM and FIN to BPE are just like SAMPLE to N2O and NITRO. They demonstrate you the first step in building enterprise business process-driven applications.

FIN is an application that has one main process — IBAN Account. The trace of this process is the history of your bank account transactions. This process is isolated, has only one participant and easy to understand as a loop.

PLM, on the other hand, has a more complex structure. It contains a distributed process among two lists of participants, e.g. subsidiaries and beneficiaries. It can be transformed into the stock exchange, capital budgeting or asset management system.

erpuno/fin 0.6 Erlang
erpuno/plm 0.6 Elixir