Skip to main content

Services

Codebase layout

The backend is a Rust Cargo workspace under api/: The frontend is a SvelteKit app under ui/web/.

Authentication model

Two token types are in use: Guest users get short-lived JWT tokens scoped to a single session.

WebSocket

Real-time updates (transcription progress, recording status, live transcript lines) flow via a single WebSocket connection established when the moderator opens a session. The API subscribes to Redis pub/sub channels and forwards events to connected clients. This replaces the polling approach that was previously used for recording status.

Observability

The API and workers export OpenTelemetry traces over OTLP (HTTP/protobuf) to whatever collector is configured in config.yml (app.otel_exporter_otlp_endpoint). In production this points to Grafana Alloy. Traces cover HTTP requests, database queries, and worker job processing.