Skip to content

feat(core): rewrite fork/join execution with structured concurrency#62

Merged
alxsuv merged 1 commit into
mainfrom
feat/61-fork-join-structured-concurrency
Apr 4, 2026
Merged

feat(core): rewrite fork/join execution with structured concurrency#62
alxsuv merged 1 commit into
mainfrom
feat/61-fork-join-structured-concurrency

Conversation

@alxsuv

@alxsuv alxsuv commented Apr 4, 2026

Copy link
Copy Markdown
Member

Replaces broken ExecutorService + ForkJoinContext with StructuredTaskScope. The old implementation executed a single node per fork target instead of a sub-flow, and stored live Future objects in state (broke serialization).

  • Fork targets now run full sub-flows via new WorkflowExecutor.executeUntil()
  • Merge logic consolidated into ForkNodeExecutor; JoinNodeExecutor is a passthrough
  • ParallelNodeExecutor migrated to StructuredTaskScope
  • SimpleTemplateResolver JSON-serializes Maps/Collections instead of .toString()
  • --enable-preview required project-wide

BREAKING: HensuEnvironment no longer AutoCloseable; MergeStrategy.CUSTOM removed.

Resolve: #61

Replaces broken ExecutorService + ForkJoinContext with StructuredTaskScope. The old implementation executed a single node per fork target instead of a sub-flow, and stored live Future objects in state (broke serialization).

- Fork targets now run full sub-flows via new WorkflowExecutor.executeUntil()
- Merge logic consolidated into ForkNodeExecutor; JoinNodeExecutor is a passthrough
- ParallelNodeExecutor migrated to StructuredTaskScope
- SimpleTemplateResolver JSON-serializes Maps/Collections instead of .toString()
- --enable-preview required project-wide

BREAKING: HensuEnvironment no longer AutoCloseable; MergeStrategy.CUSTOM removed.

Resolve: #61
Signed-off-by: Aleksandr Suvorov <asuvorov@hensu.io>
@alxsuv
alxsuv merged commit 367ac3c into main Apr 4, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Rewrite fork/join concurrency with StructuredTaskScope

1 participant