Module holochain::core::queue_consumer
source · Expand description
Manages the spawning of tasks which process the various work queues in the system, as well as notifying subsequent queue processors to pick up the work that was left off.
The following table lays out the queues and the workflows that consume them, as well as the follow-up workflows. A “source” queue is a database which feeds data to the workflow, and a “destination” queue is a database which said workflow writes to as part of its processing of its source queue.
workflow | source queue | dest. queue | notifies |
---|---|---|---|
gossip path | |||
HandleGossip | n/a | ValidationQueue | SysValidation |
SysValidation | ValidationQueue | ValidationQueue | AppValidation |
AppValidation | ValidationQueue | ValidationQueue | DhtOpIntegr. |
authoring path | |||
CallZome | n/a | ChainSequence | ProduceDhtOps |
ProduceDhtOps | ChainSequence | Auth’d + IntQ † | DhtOpIntegr. |
integration, common to both paths | |||
DhtOpIntegr. | IntegrationLimbo | IntegratedDhtOps | SysVal + VR |
ValReceipt. | IntegratedDhtOps | IntegratedDhtOps | *n/a |
Publish | AuthoredDhtOps | n/a | n/a |
(† Auth’d + IntQ is short for: AuthoredDhtOps + IntegrationLimbo)
Implicitly, every workflow also writes to its own source queue, i.e. to remove the item it has just processed.
Structs
- The triggers to run once at the start of a cell
- Map of running queue consumers workflows per dna space.
- The only error possible when attempting to trigger: the channel is closed
- The entry points for kicking off a chain reaction of queue activity
- The receiving end of a queue trigger channel
- The means of nudging a queue consumer to tell it to look for more work
Enums
- Declares whether a workflow has exhausted the queue or not
Functions
- Spawns several long-running tasks which are responsible for processing work which shows up on various databases.