Module holochain::core::queue_consumer[][src]

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.

workflowsource queuedest. queuenotifies
gossip path
HandleGossipn/aValidationQueueSysValidation
SysValidationValidationQueueValidationQueueAppValidation
AppValidationValidationQueueValidationQueueDhtOpIntegr.
authoring path
CallZomen/aChainSequenceProduceDhtOps
ProduceDhtOpsChainSequenceAuth’d + IntQ †DhtOpIntegr.
integration, common to both paths
DhtOpIntegr.IntegrationLimboIntegratedDhtOpsSysVal + VR
ValReceipt.IntegratedDhtOpsIntegratedDhtOps*n/a
PublishAuthoredDhtOpsn/an/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

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.