2

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?

The Cloud Guy
  • 963
  • 1
  • 8
  • 20

4 Answers4

2

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.

1

Look at the Temporal open source project. It is not a workflow engine in the traditional sense as it allows writing stateful orchestrations directly in Java avoiding confusing diagrams. There are multiple production applications supporting similar requirements.

Maxim Fateev
  • 6,458
  • 3
  • 20
  • 35
0

Imixs-Microservice is a workflow engine that fits into a microservice architecture. You can run it as a separate service and call it via its Rest API. The workflow service is based on the human-centric workflow Imixs-Worklfow. It solves your requirements. If you are not tied to spring boot you can also run the engine on Jakarta EE directly.

Ralph
  • 4,500
  • 9
  • 48
  • 87
0

If you see the workflows per organization diverging then use a workflow engine. If not, then I suggest you keep it as simple as possible. Perhaps https://spring.io/projects/spring-cloud-dataflow can help you?

bradm6s
  • 102
  • 5
  • 1
    Although both Spring Data flow and a Workflow Engine support sequencing, concurrency, tasks, etc, they are meant for different purposes. SCD works with Data and flow of Data, a WF Engine is geared towards the Process. It is indeed very confusing to distinguish between the two from the pure technical perspective and any can be used to get the job done. – Adrian Ivan Feb 03 '20 at 09:32