Fief.Planner.Supervisor (Fief v0.1.0)

Copy Markdown View Source

The planner-hosting subtree (implementation.md §2), one per instance, sitting between Fief.Node and Fief.Vnode.Manager under the instance's rest_for_one root. It hosts the Fief.Leadership adapter permanently and Fief.Planner only while this node holds leadership:

Fief.Planner.Supervisor            (:one_for_all)
 DynamicSupervisor              the planner slot  Fief.Planner
                                  present only while leading
 Fief.Planner.Elector           settle relay + elected/deposed 
                                  start/stop the planner in the slot
 {leadership adapter}           e.g. Fief.Leadership.FromStore,
                                   notify: the Elector

:one_for_all because the three are one mechanism: a crashed Elector cannot know whether a planner should be running, so the adapter restarts with it and re-derives the answer by campaigning (a held seat renews at the same term and re-notifies :elected).

Summary

Functions

Returns a specification to start this module under a supervisor.

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

start_link(opts)