Concepts
Looms is an event-sourced execution runtime. A run is the durability boundary; threads do the work; events are immutable facts; pure reducers request effects that return as new events.
Where to go next#
- Runs & threads — the tree, statuses, custom kinds, and three orthogonal structures.
- Events & effects — catalogs, signals, effect handlers, and the instruction set.
- Waits & replay — parking, wake cycles, replay, and snapshots.
- Modules, Projections, Hosting & storage — how to author, project, and host.
- Type safety — catalogs through projections and React.
- Quickstart — run something locally, then Examples.
- Math — formal specs when you want them.
- Prior art — event sourcing, reducers, actors, durable execution, and React.
Vocabulary#
Run#
Durability boundary and event-stream container for one logical operation, identified by runId.
Thread#
Unit of computation inside a run: agents, workflows, and custom kinds share one parent/child tree.
Event#
Immutable past-tense fact appended to the run log (e.g. approval.decided).
Effect#
Intent returned by a pure reducer: invoke IO, spawn a child, emit, or wait.
Signal#
External event injected into the stream — user messages, approvals, webhooks.
Durable wait#
Parked condition resumed by a matching event or timer. Resource usage depends on the host.
Projection#
Derived read model folded from the stream: chat, ledgers, approval queues, indexes.
Runtime module#
Package that contributes namespaced events, effects, thread definitions, and projections.