Fief.Instance (Fief v0.1.0)

Copy Markdown View Source

Name derivation for instance-scoped processes and tables. Every process and ETS name in an instance's subtree derives from the instance name, so instances never collide in one BEAM (implementation.md §2). Bounded atom minting: one fixed set per instance, created at boot.

Summary

Functions

The instance's authority adapter name.

The instance's Fief.Kernel supervisor name (the rest_for_one kernel).

The instance's Fief.Leadership adapter name.

The instance's Fief.Node name.

The instance's planner-slot DynamicSupervisor name (holds Fief.Planner while leading).

The instance's routing-cache ETS table name (owned by Fief.Router.Cache).

The instance-local settle-relay name: Fief.Vnode.report_drained/1 sends {:fief_settle_report, session, reporting_node} to whatever process is registered under it. As of M4 phase B the registrant is Fief.Planner.Elector (when leadership is enabled), which relays reports to the current leader's planner through Fief.Seam; tests without a planner may register themselves. Unregistered = reports are dropped.

The instance's root (outer) supervisor name.

The instance's vnode-agent DynamicSupervisor name.

The instance's Fief.Vnode.Manager tracker name (reconcile/kill_all target).

The instance's Fief.Vnode.Manager wrapper-supervisor name.

Functions

authority_name(instance)

@spec authority_name(atom()) :: atom()

The instance's authority adapter name.

cache_name(instance)

@spec cache_name(atom()) :: atom()

The instance's Fief.Router.Cache name.

kernel_name(instance)

@spec kernel_name(atom()) :: atom()

The instance's Fief.Kernel supervisor name (the rest_for_one kernel).

leadership_name(instance)

@spec leadership_name(atom()) :: atom()

The instance's Fief.Leadership adapter name.

node_name(instance)

@spec node_name(atom()) :: atom()

The instance's Fief.Node name.

planner_slot_name(instance)

@spec planner_slot_name(atom()) :: atom()

The instance's planner-slot DynamicSupervisor name (holds Fief.Planner while leading).

planner_sup_name(instance)

@spec planner_sup_name(atom()) :: atom()

The instance's Fief.Planner.Supervisor name.

route_table(instance)

@spec route_table(atom()) :: atom()

The instance's routing-cache ETS table name (owned by Fief.Router.Cache).

settle_relay_name(instance)

@spec settle_relay_name(atom()) :: atom()

The instance-local settle-relay name: Fief.Vnode.report_drained/1 sends {:fief_settle_report, session, reporting_node} to whatever process is registered under it. As of M4 phase B the registrant is Fief.Planner.Elector (when leadership is enabled), which relays reports to the current leader's planner through Fief.Seam; tests without a planner may register themselves. Unregistered = reports are dropped.

supervisor_name(instance)

@spec supervisor_name(atom()) :: atom()

The instance's root (outer) supervisor name.

vnode_agent_sup_name(instance)

@spec vnode_agent_sup_name(atom()) :: atom()

The instance's vnode-agent DynamicSupervisor name.

vnode_manager_name(instance)

@spec vnode_manager_name(atom()) :: atom()

The instance's Fief.Vnode.Manager tracker name (reconcile/kill_all target).

vnode_manager_sup_name(instance)

@spec vnode_manager_sup_name(atom()) :: atom()

The instance's Fief.Vnode.Manager wrapper-supervisor name.