Wiki

Clone wiki

rbpl / Home

Welcome to the Reactive Business Process Library!


Motivation

As regulation becomes stricter and digitalisation aims to minimise and ease user interaction, applications have to move away from the typical CRUD style that leaves the (burden of) business knowledge to the user and try to implement the real business flow.

The following picture shows a minimal business process modelled with BPMN:

example.jpeg

Workflow engines offer a way to implement business processes, but in our experience are not the best way for doing so. Reasons are mostly that:

  1. Business Analysts are great in designing the business aspects of a process, but tend to forget the technical aspects involved. Therefore it's best to have a pure business process as requirement and a technical business process as solution.
  2. Developers are much better in writing code than in modelling with BPMN tools.
  3. Small processes are quickly modelled and simple to understand, but processes are rarely small and simple. The larger and complex the process is, the harder it is to keep the model readable and reasonable. As developers we are good in browsing through huge codebases using todays highly efficient IDEs when trying to understand the structure of a process, doing so in a modeller is not so natural (as least for us...)
  4. Business processes that involve UI input often do not follow a strict wizard style, or at least they should not necessarily do so. Often is is completely irrelevant which data is entered first as long as at a certain point all relevant data is entered. For a user it is a complete nuisance to be forced to a strict flow simply because it is implemented that way. Business process modelling provides means for this in form of CMMN (Case Management Modelling Notation CMMN) but not many workflow engines do not support it at all or do not integrate it nicely with BPMN.
  5. We developers know how to test code and if the process flow is implemented in code and tested in code you can automatically insure it's correctness with the usual tools.

Actor systems are a perfect solution for implementing business processes. As shown in the picture above a business process is mostly a number of tasks and an interpretation of the task results that lead to a certain flow through the process.

Using an actor per task and an actor for the process instance we come naturally to the right structure having all supervision needed for the process. When implementing processes there are certain patterns coming up each time and this library provides means for the solution of it.


Examples

Find the examples on their dedicated wiki page: Examples


## Libraries ###rbpl-core - the core library This library contains the basic infrastructure of the process engine like Process, ProcessRepo, Tasketc.

###rbpl-web - the web frontend of rbpl All front-facing components of rbpl like the REST api of the ProcessRepo.

###rbpl-example - the example process implemented with rbpl Example implementations of processes with rbpl.


What is next?

Go ahead and try it out!!

Updated