DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Newsletter
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Related

  • Getting Started With Agentic Workflows in Java and Quarkus
  • Recurrent Workflows With Cloud Native Dapr Jobs
  • From Database Changes to Real-Time Actions at Scale: Oracle GoldenGate and Java
  • Treating Web Scrapers Like Production Services

Trending

  • When Production Stops Moving: Running Claude Code Across a Distributed Enterprise Integration Team
  • Treating Web Scrapers Like Production Services
  • Microsoft Fabric Throttling: Diagnose Before You Scale
  • Catching Query Regressions Before Your Users Do

Draft This article hasn't been published, so readers can't see it.

In moderation This article is waiting for review, so readers can't see it yet.

Deleted This article has been deleted, so readers can't see it.

  1. DZone
  2. Coding
  3. Java
  4. Managing Complex Java Workflows With Unify-flowret

Managing Complex Java Workflows With Unify-flowret

See if this lightweight Java orchestration engine is right for you.

By 
Deepak Arora
·
Updated Jan. 14, 21 · News
Post on X (opens in a new tab) Share on LinkedIn (opens in a new tab)
7.6K Views

Join the DZone community Save articles, join the discussion, and download Refcards and Trend Reports with a free account.

Join for free Already a member? Log in

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:

  1. True technical parallel processing
  2. “Resume from where you left off” functionality
  3. Support for any data store/database
  4. Can be run and tested standalone on a laptop without the steps being actually implemented
  5. Allows steps to specify “execute next on resume” or “execute self on resume” in case of non-error case pends.
  6. Special persist step to tell the application to persist data (if not persisting at each step)
  7. Comprehensive audit logging
  8. Crash proof — resumes from where the information was last recorded without any manual intervention
  9. Ticket management — a “go to” feature for a process
  10. Support for process variables — available to each step and route to reference and update
  11. Support for handling in flight applications by locking the process definition to a process instance
  12. Application call back events for house keeping
  13. 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.

workflow Java (programming language)

Published at DZone with permission of Deepak Arora. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • Getting Started With Agentic Workflows in Java and Quarkus
  • Recurrent Workflows With Cloud Native Dapr Jobs
  • From Database Changes to Real-Time Actions at Scale: Oracle GoldenGate and Java
  • Treating Web Scrapers Like Production Services

Partner Resources

×

Comments

Loading comments

The comments didn't load

Please try again in a moment.

Likes

Loading

The next likes didn't load. Please try again.

The likes didn't load

Please try again in a moment.

See who liked this

Log in or join DZone for free to see who liked this article.

Log in Join for free
  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook