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.