In this protocol work is dispatched according to an auction protocol. This work dispatch would be used for starting up, shutting down, and deploying actors as well as the deployment and removal of capability providers.
To deploy an actor to the lattice (which is also the same thing as increasing the scale / instance count of an actor):
Some coordinator process or operator issues an "auction' for work to be done. This includes the ID of the actor to be deployed as well as any constraints there might be on said deployment.
All hosts in the lattice respond if they are able to host this actor (they've evaluated their remaining capacity, etc)
The coordinating process then chooses a suitable target for the actor and sends the host a "you win the auction' message, which amounts to confirmation of work scheduling
The host that won the auction will then retrieve the actor's bytes from a Gantry host and start the actor
To deploy a capability provider to the lattice:
The same auction workflow will apply to the deployment of capability providers, with the original auction request containing any constraints (such as arbitrary key value pairs, architecture limitation, etc).
Removing an actor:
A specific host is told to remove an actor. Active bindings between this actor and capability providers will be removed.
Removing a capability provider:
A specific host is told to remove a capability provider. Active bindings between this capability provider and actors will be removed.
In this protocol work is dispatched according to an auction protocol. This work dispatch would be used for starting up, shutting down, and deploying actors as well as the deployment and removal of capability providers.
To deploy an actor to the lattice (which is also the same thing as increasing the scale / instance count of an actor):
To deploy a capability provider to the lattice: The same auction workflow will apply to the deployment of capability providers, with the original auction request containing any constraints (such as arbitrary key value pairs, architecture limitation, etc).
Removing an actor:
Removing a capability provider: