Module holochain::conductor

source ·
Expand description

A Conductor manages interactions between its contained Cells, as well as interactions with the outside world. It is primarily a mediator of messages.

The Conductor exposes two types of external interfaces:

  • App interface: used by Holochain app UIs to drive the behavior of Cells,
  • Admin interface: used to modify the Conductor itself, including adding and removing Cells

It also exposes an internal interface to Cells themselves, allowing Cells to call zome functions on other Cells, as well as to send Signals to the outside world

Re-exports§

Modules§

  • Defines the three Conductor APIs by which other code can communicate with a Conductor:
  • A Conductor is a dynamically changing group of Cells.
  • Entry Defs Store
  • Helper functions for interacting with the user when running a Conductor with the –interactive flag
  • Interfaces are long-running tasks which listen for incoming messages and dispatch them to the appropriate handlers within Holochain. They also allow emitting responses and one-way Signals.
  • Implementation of the Kitsune Host API
  • We want to have control over certain long running tasks that we care about. If a task that is added to the task manager ends then a reaction can be set. An example would be a websocket closes with an error and you want to restart it.
  • Queries for the P2pAgentStore db
  • Defines default paths for various resources
  • This module contains data and functions for running operations at the level of a DnaHash space. Multiple Cell’s could share the same space.
  • Structs which allow the Conductor’s state to be persisted across startups and shutdowns

Structs§

  • A Cell is a grouping of the resources necessary to run workflows on behalf of an agent. It does not have a lifetime of its own aside from the lifetimes of the resources which it holds references to. Any work it does is through running a workflow, passing references to the resources needed to complete that workflow.

Enums§