You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The last round of refactoring that moved WFT management inside of workers still leaves room for improvement. Hopefully the last round of work we need to do here for likely a rather long time.
There are a bunch of synchronization concerns that would be made simpler by following the below pattern for both WFTs and Activities:
Polling happens in the background (this is largely already true, just need to remove limiting semaphore)
Locks workflow run state to make needed updates
Poll results are fed into a stream
Poller selects from stream(s) (for wft: pending, real poll results)
Completing locks workflow run state to make needed updates
By keeping the polling half separate from the completing half, locking (or, whatever synchronization mechanism, could be message passing) permits polling and completing to happen simultaneously per-worker, but there cannot be multiple concurrent polls. Multiple concurrent completions for different workflow runs is permitted (as it is now).
Before doing this I think it's probably worth diagramming it out, to land on a really nice final iteration
The text was updated successfully, but these errors were encountered:
The last round of refactoring that moved WFT management inside of workers still leaves room for improvement. Hopefully the last round of work we need to do here for likely a rather long time.
There are a bunch of synchronization concerns that would be made simpler by following the below pattern for both WFTs and Activities:
By keeping the polling half separate from the completing half, locking (or, whatever synchronization mechanism, could be message passing) permits polling and completing to happen simultaneously per-worker, but there cannot be multiple concurrent polls. Multiple concurrent completions for different workflow runs is permitted (as it is now).
Before doing this I think it's probably worth diagramming it out, to land on a really nice final iteration
The text was updated successfully, but these errors were encountered: