What the trainee sees when the call connects, what's captured while it's live, how the pipeline turns audio into a replayable transcript, and the screen the manager opens an hour later to grade it.
A button press opens a session. Cadence stamps an immutable identifier and locks the scenario, persona, and difficulty so every downstream artifact joins back to one row.
Audio streams in via WebRTC, both channels separate, with the trainee on the left and the AI persona on the right. The wallet ticks down per minute as the conversation runs.
Hangup seals the session. Cadence writes end-side timestamps, status, and credit totals, then hands the audio to the post-call pipeline.
Audio is shipped to S3, Whisper transcribes it with word-level timestamps, the JSON is indexed in Postgres, and a scoring job grades the call against the scenario's dimensions.
The calls table is the single artifact the replay UI reads from. Grouped by purpose, narrow on the hot columns, JSONB on the bulky transcript so the player can scan a single column.
One screen. The audio scrubs in lockstep with the transcript, the current word glows, colour-coded segments mark what went well and what didn't, and the score panel sits alongside — ready for coach notes.
Every screen on this page reads from the same row written at hangup. No data lake hops, no nightly batches, no “where did the transcript go” support tickets.