Dependency Package

The dependency package is a subpackage in the Go worker library that provides constructs that help manage shared resources and their lifetimes. In Juju, it provides constructs that enable agents to run acyclic graphs of workers (i.e., workers and their dependencies, i.e., other workers).

List of most important dependency package constructs

This section lists all the most relevant dependency package constructs, following a top-down order (going from agent to worker).

NewEngine

dependency.NewEngine is a function that is used in the definition of an agent to create and initialise an engine that will maintain the dependency graph defined by any installed instances of the Manifolds type.

Install

dependency.Install is a function that is used in the definition of an agent to install instances of the Manifolds type.

Manifolds

dependency.Manifolds is a type that is used in the definition of an agent to define a collection of things of the Manifold type.

Manifold

dependency.Manifold is a type that is used in the definition of a worker to declare its inputs, outputs, and start function.