A deterministic WARP runtime for witnessed causal history, bounded readings, and replayable evidence.
Docs · Architecture · There Is No Graph · Continuum · warp-core
Echo owns time, admission, scheduling, and witnessed causal history so application code can stay focused on domain semantics.
Echo is a deterministic runtime for building applications on witnessed causal history instead of mutable in-memory state.
Traditional runtimes treat "current state" as the source of truth. Echo does not. In Echo, the durable territory is admitted causal history: submissions, frontiers, receipts, witnesses, retained artifacts, and replayable evidence. State-like things such as files, graphs, UI models, build outputs, debugger snapshots, and query results are readings over that history.
Application code does not mutate Echo state directly, and it does not decide when Echo ticks. Applications submit canonical intents. Echo admits, schedules, settles, and executes them at runtime-owned tick boundaries, then emits receipts and evidence-carrying observations.
| Need | Echo Provides | Example Use Cases |
|---|---|---|
| Deterministic execution | Runtime-owned ticks, admission, scheduling, and settlement | Simulations, engines, structured editors |
| Replayability and auditability | Witnessed causal history, receipts, and retained artifacts | Build systems, compliance tools, versioned pipelines |
| Evidence-carrying reads | Payloads wrapped in ReadingEnvelope evidence |
Debugging, time travel, proof-carrying data |
| Law-governed collaboration | Intent submission over shared causal history | Multi-user structured editing |
| Causal transport | Witnessed suffix import/export instead of state sync | Multi-runtime and peer-to-peer systems |
| Retained readings | Content retention plus semantic lookup | Audit, forensics, replay, "what happened?" analysis |
Echo is not a graph database. It is not a mutable state server. It is a deterministic WARP runtime over witnessed causal history.
| Dimension | Traditional Runtime | Echo |
|---|---|---|
| Source of truth | Mutable in-memory state | Witnessed causal history |
| Change model | Direct mutation | Canonical intent submission |
| Time authority | Application callbacks, events, threads | Trusted runtime scheduler |
| Read model | "Give me current state" | Bounded reading from explicit basis |
| Read result | Bare payload | Payload plus ReadingEnvelope |
| Distribution | Replicate state | Exchange witnessed causal suffixes |
In Echo, causal history is primary. Everything else is derived.
Read There Is No Graph for the deeper model.
- Author your domain model as a GraphQL contract.
- Compile it with Wesley into generated helpers, codecs, and contract artifacts.
- Submit canonical intents through Echo's generic ingress boundary.
- Echo owns admission, scheduling, ticks, settlement, and execution.
- Observe results as
ObservationArtifacts withReadingEnvelopeevidence.
sequenceDiagram
participant Dev
participant App
participant Wesley
participant Echo
Dev->>Dev: Author GraphQL contract
Dev->>Wesley: Compile with echo-wesley-gen
Wesley-->>Dev: Generated helpers + contract artifacts
App->>Echo: Submit canonical intent
Echo-->>App: DispatchResponse with ingress evidence
Echo->>Echo: Runtime-owned admission, scheduling, tick
App->>Echo: Send ObservationRequest
Echo-->>App: ObservationArtifact + ReadingEnvelope
Echo core is intentionally generic. Application nouns belong in authored contracts and generated adapters, not in the runtime kernel.
- You define nouns, operations, and queries in GraphQL.
- You use Wesley directives such as
@wes_opand@wes_footprintto describe operation identity and deterministic footprint claims. - Wesley generates type-safe helpers, codecs, registry metadata, and host adapters.
- Echo verifies and hosts those artifacts through stable generic boundaries.
type Mutation {
increment(input: IncrementInput!): CounterValue!
@wes_op(name: "increment")
@wes_footprint(reads: ["CounterValue"], writes: ["CounterValue"])
}- Runtime-owned time: application code cannot tick Echo or choose scheduler boundaries.
- Deterministic execution: ticks, admission, handler dispatch, and settlement are scheduler-owned.
- Evidence-first observations: readings carry basis, observer, witness, budget, rights, and residual posture.
- Replayable history: submissions, receipts, witnesses, and retained artifacts are structured for audit and replay.
- Domain separation: Echo core stays generic; application semantics live in contracts.
- Continuum-oriented transport: Echo is built for witnessed causal suffix exchange, not blind state synchronization.
Echo enforces determinism by narrowing every application action into explicit, canonical evidence before the scheduler can act on it:
- application input enters as canonical EINT bytes, not ad hoc callbacks;
- Wesley-generated contract metadata names operation ids, codecs, and footprint claims;
- Echo-owned admission decides whether submitted work can become scheduler work;
- the scheduler drains eligible work in deterministic order under explicit conflict and footprint rules;
- handlers run only during scheduler-owned ticks;
- every committed tick emits receipt evidence that can be replayed and checked.
dispatch_intent(...) is ingress. It is not "run this now." A host may run Echo
on a fixed wall-clock cadence or in an until-idle loop, but that cadence is
trusted runtime policy. The semantic tick is a logical scheduler-owned
coordinate, not application timing.
When a tick is attempted, Echo treats it as failure-atomic scheduler work: lawful conflicts or obstructions become receipt evidence, while internal runtime faults roll back uncommitted writes and quarantine the affected lane instead of silently retrying forever.
Echo owns:
- causal history, frontiers, and runtime coordinates;
- admission, scheduling, ticks, and settlement;
- receipts, witnesses, reading envelopes, and retained artifacts;
- bounded observation machinery;
- generic contract hosting and suffix import/export surfaces.
You own:
- domain semantics;
- product policy and UI;
- authored GraphQL contracts;
- generated contract helpers and host integrations.
make hooks
cargo xtask method status
cargo xtask test-slice warp-core-smoke
cargo xtask dind runEcho treats determinism and performance as executable claims, not aspirations. CI includes deterministic math guards, materialization determinism, DIND replay checks, decoder security tests, reproducible WASM builds, rustdoc warnings, clippy lanes, and criterion-based performance regression gates.
Scheduler benchmarks live in Scheduler Performance. Run them locally with:
cargo bench -p warp-bencheswarp-core: deterministic runtime kernelecho-wasm-abi: public ABI and wire DTOsecho-wesley-gen: Wesley contract helper generatorecho-cas: content-addressed retention and semantic lookupecho-ttd: time-travel and playback tooling
- Building applications: Application Contract Hosting
- Understanding the model: There Is No Graph
- Core runtime details: warp-core spec
- Causal transport: Continuum Transport
- Documentation map: Docs
Echo has a working deterministic kernel, installed contract hosting, witnessed intent submission, scheduler-owned execution, observation envelopes, semantic retention, suffix transport surfaces, and playback tooling.
The current v0.1.0 goal is narrower and practical: make Echo a usable local
deterministic contract host. Ongoing work focuses on durable submission
persistence, product-facing intent outcome APIs, reference host loops, retained
evidence polish, release-grade quickstarts, and deeper Continuum integration.
Built by FLYING ROBOTS.