Oi.Workspace.Drafting (oi v0.1.0)

Copy Markdown

Temporary result store for a single dispatch pass.

Replaces Quincunx's Blackboard. Holds computed outputs keyed by {node_or_cluster_id, orchid_io_key}. Workers read dependencies from here; Dispatcher merges results back after each stage.

Lifecycle: created fresh per Oi.dispatch/2, discarded after results are collected by the caller.

Summary

Types

addr()

@type addr() :: {term(), Orchid.Step.io_key()}

t()

@type t() :: %Oi.Workspace.Drafting{
  memory: %{required(addr()) => Orchid.Param.t() | any()}
}

Functions

fetch(drafting, addr)

@spec fetch(t(), addr()) :: {:ok, any()} | :error

fetch_many(drafting, addrs)

@spec fetch_many(t(), [addr()]) :: %{required(addr()) => any()}

new()

@spec new() :: t()

put(drafting, new_data)

@spec put(t(), %{required(addr()) => Orchid.Param.t() | any()}) :: t()