Cloud Foundry Workflow Service for Indefinite Tasks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing workflow services, such as Amazon Simple Workflow Service, are proprietary and not compatible with cloud-based platforms like Cloud Foundry, limiting their versatility and flexibility, especially in automating workflows with indefinite duration tasks like approvals and reviews.
Innovation Solution
A workflow service is developed for a cloud-based platform, utilizing open-source technologies to create a workflow executor service, task executor, event source, and event listener, allowing for vendor-neutral configuration and integration with Cloud Foundry as a service broker, enabling automation of workflows with human tasks and indefinite duration tasks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If proprietary vendor-specific workflow services are used, then workflow automation capability is provided, but platform compatibility and versatility are limited
Solution Approach 1:
The workflow service is designed to operate across multiple cloud platforms (Cloud Foundry, AWS, Azure, GCP) by implementing platform-agnostic architecture patterns. The service uses standardized Cloud Foundry buildpacks and can be deployed as a tile, enabling universal deployment across different cloud environments without vendor-specific dependencies.
Solution Approach 2:
The workflow service is segmented into independent microservices including workflow executor service, task executor service, event source service, and event listener service. Each component can be deployed independently and orchestrated through Cloud Foundry's tile mechanism, allowing flexible platform integration and avoiding monolithic vendor-specific architecture.
2Adaptability or versatility
If workflow services are built with open source technologies, then vendor neutrality and configurability are improved, but integration complexity with cloud platforms increases
Solution Approach 1:
The service broker acts as an intermediary layer between the open source workflow service components and the Cloud Foundry platform. It handles platform-specific integration details, authentication, and resource management, allowing the core workflow logic to remain vendor-neutral while simplifying platform integration through standardized interfaces.
Solution Approach 2:
The service uses configurable parameters and environment variables to adapt to different cloud platform configurations. The workflow configuration files and service broker settings can be adjusted to match specific platform requirements, maintaining vendor neutrality while accommodating platform-specific nuances through parameter customization rather than code changes.
3Ease of operation
If a service broker is created to wrap the workflow service, then platform integration is simplified, but system architecture complexity increases
Solution Approach 1:
The service broker merges multiple integration functions including authentication, service provisioning, event routing, and resource management into a single unified component. This consolidation simplifies the overall architecture by reducing the number of separate integration points and providing a single entry point for platform interactions, despite the added functional complexity.
Data Source
AI summary
A workflow service is provided on a cloud-based platform, such as a cloud foundry platform. An exemplary method comprises: providing a workflow service in a cloud-based platform, wherein the workflow service comprises a workflow executor service; obtaining, by the workflow service, a workflow configuration file specifying a sequence of tasks for execution by the workflow service; processing the workflow configuration file using the workflow executor service to create a workflow instance; initiating a given task from the workflow instance for execution by a task executor that publishes a status and/or any outputs of the given task as an event to an event source; monitoring the event source, using an event listener, to obtain the status and/or the outputs of the given task; and identifying a next task in the sequence based on the status of the given task.


