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

1

Create a log per workspace

One log per project, workspace, or whatever scope fits your product.

2

Append activity events

Log events wherever mutations happen. One call, fire and forget.

3

Deploy a timeline view

Upload a WASM function that groups, paginates, and formats events for display.

4

Query the feed

Fetch paginated activity for any entity, user, or the entire workspace.

terminal
# 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.