# flowextra v0.6.0 - Table of Contents

> Flow-Based Programming with Elixir GenStage.

## Modules

- [FlowExtra](FlowExtra.md): Railway Flow-Based Programming
- [FlowExtra.Admission](FlowExtra.Admission.md): The admission owner (FX-001): one process outside the replaceable stage
subtree, holding its pipeline generation's admitted-work ledger.
- [FlowExtra.Application](FlowExtra.Application.md): The library's own Application (T5 ruling, PASSON_FLOWEX_T5_RULING.md).
- [FlowExtra.Client](FlowExtra.Client.md): Abstraction to call the pipeline.
- [FlowExtra.Consumer](FlowExtra.Consumer.md): Consumes the pipeline data
- [FlowExtra.IP](FlowExtra.IP.md): Internal pipeline packet.
- [FlowExtra.Names](FlowExtra.Names.md): Pipeline process naming (T5 ruling).
- [FlowExtra.Pipeline](FlowExtra.Pipeline.md): Defines macros for pipeline creating.
- [FlowExtra.PipelineBuilder](FlowExtra.PipelineBuilder.md): Defines functions to start and to stop a pipeline
- [FlowExtra.Producer](FlowExtra.Producer.md): Pushes data to pipeline
- [FlowExtra.Stage](FlowExtra.Stage.md): Pipes function is called here
- [FlowExtra.StageOpts](FlowExtra.StageOpts.md): Stage state: what to run, how, and where it sits in the line.
- [FlowExtra.Supervisor](FlowExtra.Supervisor.md): Pipeline supervisor — both the wrapper (admission owner + line) and the
line itself, always `:rest_for_one`.

- [FlowExtra.Sync.GenServer](FlowExtra.Sync.GenServer.md): Sync pipeline runner: one process, the line walked in a call. The state is
the prepared stage list (FX-007) — module `init/1` already ran in the
starting caller, so the walker reuses prepared options and never
initializes per request.

- [FlowExtra.Sync.Pipeline](FlowExtra.Sync.Pipeline.md): Sync pipeline behaviour — one GenServer walks the pipe line.
- [FlowExtra.Sync.Supervisor](FlowExtra.Sync.Supervisor.md): Sync pipeline supervisor. Receives the prepared stage list (FX-007) —
module `init/1` already ran in the starting caller — and bakes it into the
child spec, so a restart reuses the prepared options.

- Exceptions
  - [FlowExtra.AdmissionError](FlowExtra.AdmissionError.md): The pipeline's answer before admission (FX-001), named by what the
caller actually knows.
  - [FlowExtra.PipeError](FlowExtra.PipeError.md): The stage-side failure: a pipe callback raised, rescued into the packet's
error track. `error` keeps the original exception; `pipe` names the
callback that failed.

  - [FlowExtra.PipelineError](FlowExtra.PipelineError.md): The caller-side failure: the pipeline crashed, vanished, or missed its
deadline.

