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
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Elevate your data management. Join a lively chat to learn how streaming data can improve real-time decision-making, and how to reduce costs.

Platform Engineering: Enhance the developer experience, establish secure environments, automate self-service tools, and streamline workflows

Build Cloud resilience. High-profiled cloud failures have shown us one thing – traditional approaches aren't enough. Join the discussion.

Data Engineering: The industry has come a long way from organizing unstructured data to adopting today's modern data pipelines. See how.

Related

  • How to Create Buttons in Java Applications
  • Formatting Strings in Java: String.format() Method
  • How Businesses Use Modern Development Platforms to Streamline Automation
  • How to Create Tables in Java

Trending

  • Microservices with .NET Core: Building Scalable and Resilient Applications
  • Front-End Debugging, Part 1: Not Just Console Log
  • Advice for Anyone Who Wants to Be a Developer
  • MuleSoft: Best Practices on Batch Processing
  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 user avatar
Deepak Arora
·
Updated Jan. 14, 21 · News
Likes (4)
Comment
Save
Tweet
Share
6.6K Views

Join the DZone community and get the full member experience.

Join For Free

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

  • How to Create Buttons in Java Applications
  • Formatting Strings in Java: String.format() Method
  • How Businesses Use Modern Development Platforms to Streamline Automation
  • How to Create Tables in Java

Partner Resources


Comments

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

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 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends: