Frequently asked questions

Everything you need to know about logs, views, pricing, and the platform.

Getting started

What is Primatomic?
Primatomic is a distributed, multi-tenant event log with WebAssembly-based materialized views. You append immutable events to a log, deploy a WASM module that folds those events into queryable state, and read the materialized state through an HTTP query API.
What's the difference between a log and a view?
A log is an immutable, append-only sequence of events. Once written, events can't be modified or deleted individually. A view is a WASM module bound to a log that processes each event and updates a materialized state. That's what your application reads.
How do I get started?
Sign up to create a tenant, define a log, upload a WASM module, append events, and query the resulting view. Walkthroughs and the full API reference live in the docs.

Building views

What languages can I write views in?
Any language that compiles to a WebAssembly Component Model module conforming to our WIT contract: init, append, query, snapshot, and restore. Rust is the primary supported toolchain today; see the docs for examples.
What consistency guarantees do I get?
Read-after-write. Every successful append returns the event's sequence number, and queries can pin to that sequence number to guarantee they see the write reflected in the view. Appends block until the event is durably acknowledged.
Are events deduplicated?
Yes. Supply an Idempotency-Key on append and duplicates within a short window are rejected, so retries are safe.

Pricing

Is there a free tier?
Yes. Every tenant gets 10 GB of storage, 16 minutes of compute, and 1 GB of data out per month, free, no credit card required. See pricing for current rates beyond the free tier.
How is pricing calculated?
Usage-based, billed monthly via Stripe. Three meters: storage (GB-hours of event log + archives), compute (WASM execution time, billed per millisecond), and data out (bytes returned by view queries). No tiers, no minimums. Current rates are on the pricing page.
How do I cancel?
Manage payment methods and billing through the Stripe billing portal linked from your billing page. To remove your data entirely, delete your tenant from settings; this cascades to all logs, views, snapshots, and archives.

Limits

What's the rate limit?
100 requests per second per tenant on general endpoints, and 10 requests per second per IP on auth endpoints. If you need higher limits, get in touch.

Reliability & data

Where is my data stored?
Hot events live in a 3-replica NATS JetStream cluster. They're then archived as compressed blobs to S3-compatible object storage, and view state snapshots are persisted there too. The full NATS stream is also backed up every 6 hours.
What happens to old events?
Events are batched into archive segments (default: 10,000 events or 30 seconds, whichever fills first) and uploaded to object storage. The hot stream can be configured to purge after archive. When a view needs to catch up, it transparently replays from the archive before transitioning to the live stream, with no manual rehydration required.
Can I export my data?
Logs can be read back through the API, and views can return any byte payload your module produces, so most export needs can be served by a custom view. A self-serve bulk export is on the roadmap; in the meantime, contact us if you need a one-off dump.

Team & operations

Can I have multiple users on my account?
Yes. Invite teammates by email and assign one of four roles: Owner, Admin, Member, or Read-only. Manage everyone from the members page.
Where does Primatomic run?
A single region today (US East, Newark, on Vultr Kubernetes Engine). Multi-region is on the roadmap.
Can I self-host?
Primatomic is a managed service today; there's no self-hosted distribution. If self-hosting is a hard requirement, let us know; it helps us prioritize.

Didn't see your question?

We're happy to dig into the details.

Get in touch