Often it's desirable to run certain steps on workers in a certain state (i.e. memory config, loaded models, or assigned to the same worker throughout). This PR adds flexible support to define worker state as key:value pairs and specify desired state in the step definition.
For further detail, see discussion #375
Type of change
[x] New feature (non-breaking change which adds functionality)
[x] This change requires a documentation update
What's Changed
[x] Adds WorkerLabel table for the current worker state
[x] Adds StepDesiredWorkerLabel for the desired state of a worker for a step
[x] Revise AcquireWorkerSemaphore
[x] Update relevant step run events to include desired and actual label state and render in UI
[x] Add StickyState
[x] Add "sticky" option to workflow runs to add future desired state to include first step worker id
Description
Often it's desirable to run certain steps on workers in a certain state (i.e. memory config, loaded models, or assigned to the same worker throughout). This PR adds flexible support to define worker state as
key:value
pairs and specify desired state in the step definition.For further detail, see discussion #375
Type of change
What's Changed
TODO
Related: https://github.com/hatchet-dev/hatchet-typescript/pull/213