Activity Feeds
Ship an activity feed by Friday.
Your app needs a changelog. You don't need to build the infrastructure. Append events, deploy a timeline view, query per entity.
Without Primatomic
Dual-write mutations to your main DB and a feed table
Build pagination, filtering, entity grouping from scratch
Feed gets stale or inconsistent with source of truth
Redesigning the feed means migrating the table
With Primatomic
One append call per mutation
Materialized view handles aggregation and formatting
Feed IS the source of truth — derived from the event log
Deploy a new view, replay from history, done
How it works
Four calls to a production activity feed
Create a log per workspace
One log per project, workspace, or whatever scope fits your product.
Append activity events
Log events wherever mutations happen. One call, fire and forget.
Deploy a timeline view
Upload a WASM function that groups, paginates, and formats events for display.
Query the feed
Fetch paginated activity for any entity, user, or the entire workspace.
# Create a project log
POST /logs
-d '{"name": "project-atlas-activity"}'
→ {"log_id": "550e8400..."}
# Append an activity event
POST /logs/$LOG_ID/append
-d '{"type": "task.completed",
"actor": {"id": "user_3b", "name": "Sarah"},
"target": {"type": "task", "id": "task_119",
"name": "Update onboarding flow"}}'
→ {"sequence": 42}
# Deploy a timeline view
POST /logs/$LOG_ID/views/timeline
--data-binary @timeline.wasm
→ {"view_id": "a1b2c3d4..."}
# Query activity for an entity
POST /logs/$LOG_ID/views/timeline/query
?entity=task_119&limit=20
→ [{"type": "task.completed", "actor": "Sarah", ...}, ...]
Why Primatomic
One integration point.
Append events where mutations already happen. No dual-write complexity, no sync bugs.
Replay and reshape.
Changed how the feed should look? Deploy a new view and replay history. Every past event reprocesses through the new logic.
Per-entity or global.
The same event log powers both "activity on this document" and "everything in this workspace." Different views, same data.
How Primatomic compares
| Primatomic | Build it yourself | Knock / Stream | |
|---|---|---|---|
| Data model | Your events, your schema | Your events, your schema | Their schema, their format |
| Custom aggregation | Any WASM function | Write and maintain it | Limited to their API |
| Historical replay | Built-in | Build it yourself | No |
| Infrastructure | Managed | Your DB, your problem | Managed |
| Lock-in | Events are portable bytes | N/A | Vendor-specific format |
Ship your activity feed this week.
Start on the free tier. No credit card required.