A proprietary workflow engine for creating custom business rules, integrating external systems, data validation and transformation.

The workflow engine implements a simple procedural language with a syntax similar to Java. The main language components are: methods, statements, variables, packages and entities.

Strong typing

All variables and method parameters have precise types and the compiler statically validates type compatibility in assignments, expressions, data statements and method calls.

Entities as first-class citizens

Entities have their own reserved types (prefixed by the ENTITY keyword), specialized keywords and statements.

Statements for working with entities:

CREATE [entityName], for creating entities;
GET [entityName] ( [key] ), for retrieving entities;
PUT [entity], for updating entities;
DELETE [entity], for deleting entities;
QUERY [query], for querying data;
INCREMENT [property] [increment], for concurrent incrementing;
ORIGINAL [property], for retrieving original values of properties (ex. for monitoring changes).

Integrated development & debugger

The application server and the UI feature an integrated development view & debugger so that the user can write and debug workflows directly in the browser.

The development view supports syntax highlighting, code folding, setting breakpoints, starting debugging session.

The debugger supports step-by-step debugging and expression evaluation at runtime.

Extendable through Java plugins

The language API can be extended through Java plugins.

Just by implementing the PackageMetaInfo interface and registering it with the WorkflowService, new types and methods can be used in the language API.