Implementing Workflow engine in Java Spring Boot

The Cloud Guy picture The Cloud Guy · Sep 28, 2019 · Viewed 7.9k times · Source

I have the below requirements where workflow is required:

  1. The product is a cloud based product where organizations will register and create roles for their team on the go.
  2. The teams will submit some entity like expenses, travel request etc for approval
  3. The approval flow will be configured by organization using organization roles (created by org) or system roles (owner, manager, admin) which are predefined by our application.
  4. There will be actions triggered on every approval that needs to be defined in our code.

My confusion is whether to integrate a workflow engine for this or not -

If yes, which workflow engine will support this flow.

If not, should I go around and build a custom workflow engine and a UI as per my needs or there's a better solution?

Answer

Deepak Arora picture Deepak Arora · Oct 12, 2020

You could take a look at unify-flowret, a lightweight Java orchestration engine I created as part of developing a new platform in American Express.

Here are the core features. Very simple workflow definition, state management, parallel processing, comprehensive audit logging, ticket management, process variables, call back life cycle events, crash resilience, SLA and work management etc.

You can checkout unify-flowret at https://github.com/americanexpress/unify-flowret.