# oi v0.6.4 - Table of Contents

> Lightweight Orchid integration layer with pluggable execution strategies

## Pages

- [Oi](readme.md)
- [Changelog](changelog.md)

## Modules

- Core
  - [Oi](Oi.md): Oi provides a simple API for [Orchid](https://hex.pm/packages/orchid)
and ready-to-use functions for bind [OrchidSymbiont](https://hex.pm/packages/orchid_symbiont), [OrchidStratum](https://hex.pm/packages/orchid_stratum)
and [OrchidIntervention](https://hex.pm/packages/orchid_intervention).
  - [Oi.Compiled](Oi.Compiled.md): Static compilation product: bundles + execution plan.
  - [Oi.Result](Oi.Result.md): Execution result: the final drafting memory.

- DSL
  - [Oi.Flowgraph](Oi.Flowgraph.md): A higher API for building graph.
  - [Oi.Step](Oi.Step.md): Lightweight declarative syntax layer on top of `Orchid.Step` /
`OrchidSymbiont.Step`. Provides a simple API and exposes
`__node_spec__/0` for topology integration.

- Compile
  - [Oi.Compile.Bundle](Oi.Compile.Bundle.md): Container for a compiled Orchid recipe and its associated metadata.
  - [Oi.Compile.Planning](Oi.Compile.Planning.md): Execution plan built from compiled Bundles.
  - [Oi.Compile.Planning.Plan](Oi.Compile.Planning.Plan.md): Ordered sequence of stages.
  - [Oi.Compile.Planning.Stage](Oi.Compile.Planning.Stage.md): A single execution barrier.

- Dispatch
  - [Oi.Dispatch](Oi.Dispatch.md): Dispatch layer: takes a compiled pipeline and runs it with concrete data.
  - [Oi.Dispatch.Config](Oi.Dispatch.Config.md): Immutable dispatch configuration.
  - [Oi.Dispatch.Drafting](Oi.Dispatch.Drafting.md): Temporary result store for a single dispatch pass.
Holds computed outputs keyed by Orchid io_key (e.g. `"pred_step|result"`),
which is already globally unique. Workers read dependencies from here;
the dispatcher merges per-stage deltas back after each barrier.

  - [Oi.Dispatch.Orchestrator](Oi.Dispatch.Orchestrator.md): Orchestrates barrier-synchronized execution of plan stages.
  - [Oi.Dispatch.Worker](Oi.Dispatch.Worker.md): Executes a single Bundle in isolation.

- Topology
  - [Oi.Topology.Cluster](Oi.Topology.Cluster.md): Cluster dependencies based on user selections and dependency relationships at the front end
to achieve parallel control.
  - [Oi.Topology.Graph](Oi.Topology.Graph.md): The pure mathematical representation of the DAG.

  - [Oi.Topology.Graph.Edge](Oi.Topology.Graph.Edge.md): A directed edge representing data flow between two node ports.
  - [Oi.Topology.Graph.Node](Oi.Topology.Graph.Node.md): A pure data representation of a computation step in the DAG.
  - [Oi.Topology.Graph.PortRef](Oi.Topology.Graph.PortRef.md): A container based on the node/port representation, used to dynamically generate Orchid keys.

- Executors
  - [Oi.Executor](Oi.Executor.md): Pluggable task execution strategy for stage fan-out.
  - [Oi.Executor.Sync](Oi.Executor.Sync.md): Serial executor — runs all tasks in the calling process.
  - [Oi.Executor.TaskSup](Oi.Executor.TaskSup.md): Task.Supervisor-backed executor — concurrent fan-out with crash isolation.

- Adapters
  - [Oi.Adapters](Oi.Adapters.md): Ready-to-use orchid adapters.

- Runtime
  - [Oi.Runtime.Registry](Oi.Runtime.Registry.md): Local process storage for Oi sessions.
  - [Oi.Runtime.Session](Oi.Runtime.Session.md): Session separates the whole application into several spaces where contains different
steps, independent [symbionts](https://orchid-symbiont.hexdocs.pm/) and storages.

  - [Oi.Runtime.Session.Instances](Oi.Runtime.Session.Instances.md): Instance Supervisor.

