Module holochain::conductor [−][src]
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]:
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
Queries for the P2pMetrics store
Defines default paths for various resources
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