Primatomic
Event logs. WASM views. Deterministic state.
The Pipeline
Section titled “The Pipeline”Append → Process → Query
Write events to immutable logs. WASM views consume events and build state. Query that state with consistency guarantees.
┌─────────────┐ ┌─────────────┐ ┌─────────────┐│ Append │ ──▶ │ View │ ──▶ │ Query ││ Events │ │ (WASM) │ │ State │└─────────────┘ └─────────────┘ └─────────────┘Append-only event logs. Events are binary payloads-JSON, Protobuf, whatever you need. Once written, they’re immutable and ordered.
curl -X POST https://api.primatomic.com/logs/$LOG_ID/append \ -H "Authorization: Bearer $TOKEN" \ -d '{"item": "widget", "qty": 5}'Deploy WebAssembly components that process your logs. A view receives each event in order and maintains state-counters, aggregates, indexes, projections.
Views implement a simple interface:
init()- set up initial stateappend(event)- process one eventquery(input) → output- answer questions about statesnapshot() → bytes- serialize for persistencerestore(snapshot)- recover from a snapshot
Consistency
Section titled “Consistency”Query with sequence numbers to guarantee read-after-write consistency. After appending event #42, query with ?after=42 to ensure your view has processed it.
# Append returns the sequence numberseq=$(curl -X POST .../append -d '...' | jq .sequence)
# Query waits for that sequencecurl ".../query?after=$seq" -d '{"type": "get_total"}'Get Started
Section titled “Get Started”- Quick Start - Create a log, deploy a view, run a query
- WASM Interface - Build views in Rust, Go, or any WASM-compatible language
- API Reference - Full endpoint documentation