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

pub use conductor::Conductor;
pub use conductor::full_integration_dump;
pub use conductor::integration_dump;
pub use handle::ConductorHandle;

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

Defines ConductorHandle, a lightweight cloneable reference to a Conductor with a limited public interface.

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.

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.

A configurable Builder for Conductor and sometimes ConductorHandle

Enums