Collab Architecture & Specs

LiveKit-based SFU with WHIP/RTMP ingress and room composite egress, Whisper-powered AI transcription with structured action items, a 5-rule DLP compliance engine, a 5-state presence machine, and Bridge-backed local recording + whiteboard camera capture.

Performance & Collab Metrics

Message Delivery P50

8ms

Presence Update Latency

<50ms

Transcription Turnaround

<30s for 60-min recording

LiveKit Egress Start

<3s from request to recording

WHIP Ingress Setup

<2s (RFC 9725 compliant)

Channel List Load

<100ms (cursor pagination)

Webhook Verification

<1ms (HMAC-SHA256)

1. LiveKit Video — SFU, Egress & Ingress

CapabilityDetails
Room composite egressComposites an entire room into a single MP4 (or RTMP/HLS stream)
Track composite egressComposites specific tracks — e.g., speaker camera + screen share — to a stream destination
Egress statusLive status polling from request through completion
Ingress typeDetails
------
WHIPRFC 9725-compliant push ingress for OBS/FFmpeg/browser encoders; passthrough mode available for lower CPU use
RTMPStandard broadcast ingress (OBS, Wirecast, professional cameras); transcoding on by default (H.264/AAC → WebRTC)

2. AI Transcription — Whisper AI + Structured Output

FieldDescription
`text`Full transcript text
`vtt`WebVTT captions for subtitle support
`segments`Timestamped text segments

3. DLP — 5-Rule Compliance Engine

PatternCategory
SSNPII
Credit card numberFinancial
Email addressPII
Phone numberPII
IP addressPII

4. Presence — 5-State Machine

TransitionTrigger
Online → IdleNo activity for a configurable period (5 minutes by default)
Idle → OfflineSession ends
Any → Do-Not-Disturb / InvisibleExplicit user action
Offline → OnlineSession reconnects

5. Bridge — Local Hardware Integration

The Aeion Bridge desktop companion unlocks native hardware workflows: local screen+audio recording to disk (avoids cloud upload), whiteboard camera capture, screen capture for chat sharing, and audio device enumeration.

Local Recording (progressive enhancement):

Recording captures screen + audio directly to a local folder in MP4, with live status available while it's running and a completed file (path, size, duration) once stopped. When Bridge isn't connected, none of this is offered — every other feature keeps working fully in the browser.

Whiteboard Camera Capture:

Captures a 1920×1080 JPEG photo of a physical whiteboard through a connected USB camera via Bridge — useful for pulling a hand-drawn whiteboard into the meeting record without a dedicated capture device.

Audio Device Selection:

Lists every available microphone and speaker so users can pick the right input/output for a call.

6. Messaging — Threading, Search & Reactions

Messaging handles channel-based routing, threading (parent/reply linkage), full-text search, and reactions, with real-time delivery to every connected client. AI message intelligence (sentiment analysis, language detection, smart compose) runs as a separate layer over message history rather than being baked into the core messaging path, so it can be upgraded independently of the base messaging engine.

Message Threading:

Replies are linked to their parent message and paginated with cursor-based lookups, so long threads load quickly regardless of size.

7. Channels — Multi-Type + Access Control

PropertyWhat it controls
Typetext / voice / forum / announcement / direct message / group DM
Privacypublic or private, independent of type
Membershiprole-based (owner, admin, moderator, member, guest)
Pinned messagesPer-channel pin list
SettingsSlow mode, auto-delete messages, thread duration, allow threads/reactions/files, max file size

8. Recording — Meeting Lifecycle

Recording management covers the full lifecycle — creation, status updates, transcription triggering, download URL generation, and deletion.

Recording Lifecycle: recording → processing → completed (or failed). Recordings older than 90 days are cleaned up automatically by default, configurable per tenant.

Each recording tracks its room, duration, participant count, and — once transcription finishes — the transcript text, WebVTT captions, and language.

Each recording exposes its status (recording / processing / completed / failed) via the API, so you can poll for completion rather than assume a fixed processing time.

Composes with the rest of the OS