elsa-workflows / elsa-workflows/elsa-foundation
Execute dispatched workflows across distributed nodes
- Dominant language
- C#
- Stars
- 5
- Forks
- 1
- Avg merge
- 3h 52m
- Merged PRs (30d)
- 212
Description
## Parent
#674
## What to build
Prove that DispatchWorkflow remains transport-neutral in a clustered host. Use the existing distributed Groundwork execution actor provider, durable command transport, placement leases, and fencing so that a child-start intent produced on one node may be claimed and executed by an eligible node without changing the activity contract or introducing broker-specific concepts.
Covers parent user stories 45, 47–49, and 53–54.
## Acceptance criteria
- [ ] A two-node acceptance scenario proves that a dispatch checkpoint committed on one node can result in child execution on an eligible node.
- [ ] The existing workflow start dispatcher and configured execution actor provider remain the only activity-facing execution seam.
- [ ] Placement and forwarding choose the draining node, while checkpoint fencing remains the safety boundary against stale or duplicate writers.
- [ ] Duplicate child-start delivery and placement changes converge on one logical child execution.
- [ ] Restarting either node after durable intent creation preserves dispatch and child-start progress.
- [ ] Dispatch lifecycle state and authenticated inspection remain consistent regardless of the node executing the child.
- [ ] Deployment readiness distinguishes in-memory development, durable single-node Groundwork, and distributed Groundwork compositions.
- [ ] Architecture tests prove no MassTransit, service-bus, routing-channel, priority, affinity, or transport-selection dependency enters the activity contract.
- [ ] Existing local in-process dispatch behavior remains unchanged.
## Blocked by
- #676
- #678
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the existing distributed Groundwork execution actor provider, workflow start dispatcher, durable command transport, placement leases, and fencing. Run or inspect the existing local in-process dispatch behavior and architecture tests before designing the two-node acceptance scenario. Done means durable dispatch survives restart, placement changes and duplicate delivery converge on one child execution, while the activity contract stays transport-neutral.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- backend, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100