Replicant.Pipeline (Replicant v0.1.0)

Copy Markdown View Source

Per-pipeline Supervisor (spec §4): supervises the Replicant.AssemblerServer and the Replicant.Connection under :one_for_all — a crash of either restarts both together, so a fresh Connection (resuming from the sink checkpoint) is never paired with a stale in-memory assembler buffer. Registered by slot in Replicant.Registry so Replicant.Supervisor.halt/2 can terminate the whole pipeline permanently on a fail-closed condition.

The AssemblerServer starts before the Connection (the Connection casts decoded messages to it; with sync_connect: false the Connection does not stream until after boot). In lib mode the CheckpointStore starts first of all, so the Connection can read it on connect and the AssemblerServer can write through it.

Summary

Functions

Returns a specification to start this module under a supervisor.

The Registry via-name a pipeline supervisor registers under.

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

start_link(config)

@spec start_link(Replicant.Config.t()) :: Supervisor.on_start()

via(slot_name)

@spec via(String.t()) :: {:via, module(), term()}

The Registry via-name a pipeline supervisor registers under.