Replicant.AssemblerServer (Replicant v0.1.0)

Copy Markdown View Source

The serial process shell over the pure Replicant.Assembler (spec §4). Receives decoded pgoutput messages from Replicant.Connection (which decodes behind the value-free boundary and never applies the sink), assembles transactions, and applies the sink synchronously — blocking THIS process, off the Connection's keepalive path. On a durable sink commit (or a watermark skip) it messages the Connection so the ack advances asynchronously; on a fail-closed condition (destructive schema change, sink WRITE fault, an unidentifiable-relation row) it halts the whole pipeline permanently (spec §6/§9).

It is a single serial GenServer (not a Task per transaction) so transactions apply strictly in commit order — the correctness baseline of synchronous per-transaction delivery.

Summary

Functions

Returns a specification to start this module under a supervisor.

The Registry via-name a pipeline's AssemblerServer registers under.

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

start_link(opts)

@spec start_link(keyword()) :: GenServer.on_start()

via(slot_name)

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

The Registry via-name a pipeline's AssemblerServer registers under.