Managing Complex Java Workflows With Unify-flowret
Unify-flowret is a lightweight Java orchestration engine that can scale from the simplest of workflows to the most complex ones. Read more about it on https://github.com/americanexpress/unify-flowret.
You may be wondering... Why another orchestration engine when there are already so many? We have off the shelf commercial “heavyweights,” open-source frameworks like AWS step functions/Uber Cadence/Netflix Conductor, and a host of others. Why another one?
The answer is simple: Simplicity! Most of the orchestration engines I worked with or evaluated were too heavy or too cumbersome or too complex. Some you could build your entire careers on, and some required complex DSLs. Some required hacks to do parallel processing, and many required their own separate server setup, etc. I wanted something really simple that had all the features to manage a complex workflow, yet was simple and no more.
So, I present unify-flowret.
Unify-flowret is a lightweight Java orchestration engine that gives you all the features you need to implement your workflow. It is a small JAR file that can be embedded in your applications. Below is a feature summary:
- True technical parallel processing
- “Resume from where you left off” functionality
- Support for any data store/database
- Can be run and tested standalone on a laptop without the steps being actually implemented
- Allows steps to specify “execute next on resume” or “execute self on resume” in case of non-error case pends.
- Special persist step to tell the application to persist data (if not persisting at each step)
- Comprehensive audit logging
- Crash proof — resumes from where the information was last recorded without any manual intervention
- Ticket management — a “go to” feature for a process
- Support for process variables — available to each step and route to reference and update
- Support for handling in flight applications by locking the process definition to a process instance
- Application call back events for house keeping
- SLA milestone framework and work basket management
At American Express, we use it to power many of our workflows, and it has been able to meet all our complex requirements to date. I hope this work will help many who have experienced working with orchestration engines to be more difficult than it should be. I look forward to comments and feedback from the community.
Please feel free to follow me @DeepakAroraHi on Twitter and let me know what you think.
Read more about it on https://github.com/americanexpress/unify-flowret
Disclaimer -> #ViewsMyOwn.