Flow Runtime Versioning for Cloud Platform Stability
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Cloud-based platform systems face challenges in implementing software changes to flow engine software without disrupting user-specific flows, as changes may affect multiple tenants and impact performance.
Innovation Solution
The implementation of flow runtime versioning, which involves determining and applying the correct software version for user-specific flows using an API version identifier, allowing for software changes to be applied only when necessary, thereby minimizing disruption.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If software changes are made to the flow engine software, then the platform system can be improved and updated, but the performance of user-specific flows may be disrupted
Solution Approach 1:
The patent segments the software versioning by introducing API version identifiers that distinguish between different versions of the flow engine software. This allows the system to segment user flows into different version groups based on their compatibility requirements, enabling selective application of software changes to specific user flows without affecting others. The segmentation is achieved through versioned API calls and targeted deployment mechanisms that isolate changes to specific version groups.
Solution Approach 2:
The patent implements dynamic versioning by allowing the system to dynamically determine which software version to apply based on the API version identifier associated with each user flow. The flow engine dynamically checks the version identifier and applies the appropriate software version at runtime, rather than using a static versioning approach. This dynamic behavior enables continuous software updates while maintaining backward compatibility and preventing disruptions to existing user flows.
2Productivity
If software changes are applied to all user flows, then the platform can be updated efficiently, but disruption to existing user flows increases
Solution Approach 1:
The patent applies local quality by treating different user flows differently based on their API version identifiers. Instead of uniformly applying software changes to all flows, the system identifies the specific version group affected by the change and applies the update only to those flows. This localized approach minimizes the impact on existing user flows while maintaining efficient deployment of improvements to eligible flows.
Solution Approach 2:
The patent implements preliminary action by pre-identifying the API version identifier for each user flow before applying software changes. This preliminary identification allows the system to pre-determine which flows are compatible with upcoming software changes and prepare the deployment strategy accordingly. By knowing the version identifiers in advance, the system can plan and execute updates in a way that minimizes disruption to active flows.
3Reliability
If versioning is implemented for flow runtime, then software changes can be applied with minimal disruption, but system complexity increases
Solution Approach 1:
The patent achieves universality by using a single API version identifier field to serve multiple purposes: identifying flow compatibility requirements, determining software version selection, and managing deployment strategies. This multi-functional approach consolidates what could be multiple separate versioning mechanisms into one unified system, reducing overall complexity while maintaining reliable flow execution continuity.
Solution Approach 2:
The patent employs copying by creating versioned copies of the flow engine software for different API versions. Instead of modifying the original software in place, the system maintains separate versioned copies that can be selectively deployed. This copying approach isolates changes to specific versions without affecting the original or other versions, simplifying the version management process while ensuring continuous and reliable flow execution.
Data Source
AI summary
Described is a method in a cloud-based system for implementing changes to flow engine software that executes user-specific flows for a plurality of users. The method includes: receiving a request to load and execute a user-specific flow; identifying an API version identifier for the user-specific flow; loading the user-specific flow; determining whether a software change to the flow engine software should be applied when executing the user-specific flow based on the API version identifier; and executing the user-specific flow using the flow engine software with the software change when it is determined, based on the API version identifier, that the software change to the flow engine software should be applied.


