WordloopWordloop
WorkMeeting RecordingTechnical Design DocMilestones04 Live Transcript To Final Rebuild

Live Recording Session

Domain execution constraints, capabilities, and test cases.

Live Recording Session

Owner: AI Domain: core Complexity: L Prerequisite: Milestone 3 Completed

This slice achieves the core orchestration of a live audio recording session. It introduces the meeting_recordings schema, updates the asynchronous API specifications, and implements the RecordingService to coordinate the WebSocket lifecycle and manage state transitions from active to stopping.

Required Capabilities

  • Create meeting_recordings schema with status enums and sequence tracking.
  • Define StartRecordingCommand and StopRecordingCommand WebSocket contracts in asyncapi-ws.yaml.
  • Implement the RecordingService orchestrator in Core.
  • Emit com.wordloop.meeting.session.terminated.v1 to trigger ML finalization.
  • Persist live session state in Postgres.

Dependencies

  • Milestone 3 (reusable-note-components) must be merged and verified.

Domain Notes

Schema Notes:

TableKeysDescription
meeting_recordingsmeeting_id (PK)Tracks the active recording session status and audio gap markers.

State Transitions:

  1. active: Session is actively receiving WebSocket audio chunks.
  2. stopping: Client requested a stop; buffers are flushing.
  3. draining_ml: Emitting the termination event to ML and awaiting final segments.
  4. completed: Processed successfully.

Test Cases

TestLocationAssertion
Start Recording Idempotencytest_coreStarting an already active recording returns 200 OK (idempotent).
Start Recording Creates DB Recordtest_coreThe meeting_recordings table gets a new row in active state.
Stop Recording Transitions Statetest_coreStopping a recording sets status to stopping and publishes the termination event.

Completion Checklist

  • Code merged and deployed
  • Bet progress tests pass (./dev test bet meeting-recording)
  • Permanent service tests implemented per testing strategy
  • Code review completed
  • API review completed
  • Testing review completed
  • System documentation updated

On this page