The primitives.
Weave has seven concepts you need to know. Everything else — SDKs, the runtime, the CLI — is sugar on top of these. Once they click, the rest of the system reads itself.
Scroll
availableThe append-only event log.
An ordered, immutable record of everything that happens inside a run. Both event store and message broker — one primitive, not two.
Event
availableA committed fact.
A topic plus a payload, written to a scroll. External commits capture facts the runtime can't reproduce; derived events are a consequence of prior ones.
Reactor
availableA subscription as data.
Watches a source scroll, tracks its cursor on a state scroll, and turns new events into more events. The primitive underneath tool dispatch, projection, enrichment, and reconciliation.
Agent
availableA model call with a typed contract.
The LLM-calling peer to the reactor. Takes an inputs bag, commits an ai.request / ai.response pair on a scroll, decodes into a structured output. Nano, mini, full — decompose before you scale up.
Workflow
availableA state machine as data.
A compiled definition the runner interprets against scroll events. Workflows are data, never code paths — that's why they replay.
Tool
availableA handler on the scroll.
Subscribes to tool.dispatch events and publishes tool.result. The handler's location — in-process, service, or MCP — is an implementation detail.
Prompt
availableA question on the scroll.
Hydration emits prompt.hydrate.request; a subscriber produces prompt.hydrate.result. Structurally symmetric to Tool — static strings are the degenerate case.