·
89 commits
to refs/heads/main
since this release
What’s Changed
-
Implement sync workflow execution (fixes #659), upgrade to JDK 21, remove deprecated DynoQueue (#703) @v1r3n
Synchronous Workflow Execution
This PR introduces synchronous workflow execution capabilities, allowing clients to start a workflow and wait for it to complete (or reach a specific task) within a single HTTP request.
New API Endpoint:
POST /api/workflow/execute/{name}/{version}- Execute a workflow synchronously with configurable wait conditions
Key Features:
- Wait for workflow completion or until a specific task reference is reached
- Configurable wait timeout (default: 10 seconds)
- Multiple return strategies:
TARGET_WORKFLOW,BLOCKING_WORKFLOW,BLOCKING_TASK,BLOCKING_TASK_INPUT - Support for dynamic workflow definitions in request body
- Idempotency via
requestIdparameter
Supporting Changes:
- New models:
SignalResponse,WorkflowRun,TaskRun,WorkflowSignalReturnStrategy - Enhanced
NotificationResultclass with reactive support and blocking task detection - New
ExecutorUtilsfor workflow traversal and blocking task identification - Enhanced
WorkflowSweeperwith improved notification handling - New
SweeperPropertiesfor sweeper configuration - Updates to
Waittask to support signal-based workflow unblocking - Service layer additions in
WorkflowServicefor sync execution support
Infrastructure Improvements
Dyno Queue Cleanup:
- Removed deprecated
DynoQueueDAOimplementation - Cleaned up Dyno-specific Redis queue configurations
- Removed
RedisQueuesShardingStrategyProvider(no longer needed) - Added minimal Dyno connectionpool classes for backward compatibility
JDK Upgrade
- Upgraded to JDK 21
Bug Fixes & Test Updates
- Fixed workflow reconciliation and sweeper behavior
- Updated test configurations across multiple modules
- Fixed SQLite integration tests
- Updated WorkflowResource tests for new sync execution endpoints
- Removed obsolete test properties
Fixes #659