Dev mode

Dev mode starts the full stack plus observability tools for watching data flow through the system in real time.

Starting

# Terminal 1: Start the full stack
make dev

# Terminal 2: Start the visual stream browser
make dev-ui

What you get

Heartbeat producer

A container that exercises both sync directions every 5 seconds:

  • Odd ticks (PG-to-DS): INSERTs into the items Postgres table. Electric picks up the WAL change, the sync service forwards it to the pg-items DS stream.
  • Even ticks (DS-to-PG): POSTs a session event to the session-events DS stream. The sync service consumes it via SSE and INSERTs into the session_events Postgres table.

Watch the logs:

docker-compose logs -f producer

After ~30 seconds, both items and session_events tables will have heartbeat rows.

Adminer (database UI)

Open http://localhost:8081 to browse Postgres tables.

FieldValue
SystemPostgreSQL
Serverpostgres
Usernamepostgres
Passwordpassword
Databasedurable_streams

Test UI (stream browser)

The test-ui is the official durable-streams stream browser. It is cloned into .dev/ (gitignored) on first run via make dev-ui.

Connect it to the DS server at http://localhost:4437. The producer's streams (pg-items, session-events) can be navigated to manually.

Requirements: pnpm, Node 22+

Known limitation: The server does not implement the __registry__ stream used for auto-discovery, so streams will not auto-populate in the sidebar.

Port map

PortServicePurpose
4437serverDS server (direct, no auth)
8080envoyJWT auth proxy
9901envoyEnvoy admin dashboard
54321postgresPostgres direct access
8081adminerDatabase admin UI
3000test-uiVisual stream browser (host)

Stopping

make dev-down          # stop all containers
rm -rf .dev/           # remove cloned test-ui monorepo (optional)