Self Updating and Optimizing Software Engines

Learn about FlowWright's self-updating and optimizing service engines

Last published at: April 18th, 2024

At FlowWright’s heart is its workflow engine.  Over the years, we have added more dedicated engines that power important functionality.  Most recently, the new version includes a new service/engine to perform distributed file synchronization in distributed environments. Now, FlowWright also ensures that engine configuration changes are picked up and acted upon without impacting execution and performance.  

Over time, FlowWright engines have gone through algorithmic changes as technologies have advanced. One important change is the use of child processes: our engine launches child processes to process each workflow such that the crashing of one process does not affect any other process.  This feature improved engine stability and helped with better-distributed processing.

With prior versions of FlowWright engine configuration changes required stopping and restarting engine services. With the new version, we solved this problem by automatically refreshing engine configuration every 5 minutes. 

FlowWright is fully multi-tenant and this new ability to automatically adjust for configuration changes through the new tenant manager ensures that any # of new tenants can be added and that engines for each tenant will be refreshed with the latest configuration.

FlowWright engines were already built to self-optimize based on configuration, but now this optimization is enhanced. For example, if tenants are made inactive, engines auto-update their configuration and will no longer look for work to be performed in these inactive tenants.

Self-updating software engines is not a new concept, but the algorithms used to perform these operations are new: intelligence is key, and data-driven intelligence provides maximum efficiency and results.

FlowWright software engines are continuously optimized and our benchmarks show that these improvements to managing configuration changes, along with pipeline processing optimizations, will tremendously increase workflow processing engine performance.