Crux for Developers

Remiges Crux is an open source business rules engine and workflow engine, written in Go, with client libraries in Go and Java, and an awesome rules editing and testing UI. It can be downloaded from Github: see here and here.

This blog carries technical articles which will help developers understand what Crux does and does not do, and how to integrate Crux into their business applications.


What is Remiges Crux?

Remiges Crux is an open source product which acts as a business rules engine (BRE) and workflow engine (WFE).

Crux works as a service, with a REST API to business applications. Business applications can define the schema for rules or workflows, can define rulesets conforming to these schema, and then query the rulesets for each instance of entity or workflow, all via the REST API.

Crux offers a GUI by which the rules manager can define or edit rulesets.

Queries to the workflow engine are idempotent as long as the underlying rulesets are not changed. Therefore, query performance for the BRE may be sharply improved by caching of queries.

Crux internally maintains its rules database in a relational database. Access to this database is infrequent, therefore a high transaction rate is not required.

The service of Crux is written in Go, and its rules management interface uses Angular for a browser-based interface. Client libraries are available in Go to integrate Crux with business applications. A Java library is in the roadmap.