Synchronous Business Process Engine for Predictable Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing business process execution engines execute processes asynchronously, leading to indeterminate and unpredictable execution times, which is disadvantageous for certain business processes, especially those requiring real-time data return and interaction with interactive user interfaces.
Innovation Solution
A synchronous business process execution engine that executes processes in a single execution transaction context, caching all objects and executing in-memory, providing predictable execution times and low latency, while maintaining the capabilities of asynchronous engines.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If asynchronous execution is used in business process engines, then reliability and statefulness are improved, but execution time becomes indeterminate and unpredictable
Solution Approach 1:
The system dynamically switches between asynchronous and synchronous execution modes based on process requirements. The process engine can operate in asynchronous mode for reliability-critical tasks and synchronous mode for real-time requirements, providing flexible adaptation to different execution scenarios without being locked into a single execution paradigm
Solution Approach 2:
The execution mode parameter can be changed between asynchronous and synchronous based on the specific process needs. This allows the same process engine to provide different execution characteristics (predictable timing vs. reliable statefulness) by simply changing the execution mode parameter without requiring different systems
2Loss of time
If synchronous execution is implemented, then execution time becomes predictable and latency is reduced, but transaction coordination complexity increases
Solution Approach 1:
The process engine manages its own transaction coordination internally when operating in synchronous mode, automatically handling transaction boundaries, resource allocation, and execution context without requiring explicit coordination from the calling system. This self-managed approach reduces the coordination complexity burden on external systems
Solution Approach 2:
The process engine serves multiple execution modes (asynchronous and synchronous) within a single unified system, providing universal functionality that can adapt to different execution requirements. This multi-functional design eliminates the need for separate systems for synchronous and asynchronous execution, reducing overall system complexity
3Productivity
If asynchronous execution is used, then system throughput is improved, but real-time data return capability is lost
Solution Approach 1:
The system segments execution into different modes: asynchronous execution for bulk processing and throughput optimization, and synchronous execution for real-time data return requirements. This segmentation allows the system to optimize for throughput when real-time response is not critical, while providing real-time response when needed, without compromising overall system productivity
Data Source
AI summary
An asynchronous business process specification declared in a procedural markup language comprising an activity flow model and a plurality of activities is received. An indication is received that a subset of the plurality of activities is to be synchronously executed without reduced latency. All process execution related objects are fetched once into a memory. The synchronous subset is executed in a single execution transaction context.


