본문으로 건너뛰기

회의 — 시작에서 확정까지

회의 하나가 시작해서 확정될 때까지 무엇이 어떤 순서로 일어나는가?

중지 · 재개 · 끊김 · 실패까지 그린다. SA는 경계를, 이 문서는 순서를 진다.


실제로 깨지는 자리는 전부 예외 경로에 있다. 정상 경로 한 줄기만 그리면 만들 때 반드시 구멍이 난다.

1. 회의 하나의 상태

상태성격
NOT_STARTED · IN_PROGRESS · PAUSED · ENDED회의록에 이미 있는 값 넷
화자분리중 · 화자확인대기 · 요약생성중 · 검토대기 · 확정아직 컬럼이 없다
확정 → 검토대기참여자 전원이 다시 고칠 수 있다. 잠그지 않는다

⚠️ 지금 스키마는 ENDED 에서 끝난다 — 종료 후 파이프라인의 상태를 담을 자리가 없다. 마이그레이션 묶음에 같이 넣어야 한다.


2. 회의 중 — 중지와 재개가 세션을 가른다

전사 세션은 회의와 1:1 이 아니다. 중지·재개마다 새 세션이 열리고, 오디오 오브젝트도 세션마다 하나다.

규칙내용
좌표저장 값은 세션 기준이다. 회의 기준 시각은 세션 시작 오프셋을 더해 얻는다
세션 사이 무음채우지 않는다. 세션 의 유실만 채운다
오브젝트세션마다 하나. 키가 회의 식별자로 시작한다
동시 세션 금지한 회의에 살아 있는 세션은 하나뿐이라고 스키마가 강제한다

요약에서 전사로 점프하는 근거 칩이 여기 걸린다 — 저장된 시각이 세션 오프셋이라 세션이 둘 이상이면 같은 04:12 가 다른 줄을 가리킨다. 세션 시작 오프셋이 그것을 닫는다.


3. 회의 중에 끊기는 세 가지

셋 다 "회의가 끝난 것"이 아니다. 구분해서 다뤄야 한다.

무엇유실
진행자의 중지·종료0finalize 를 기다린다
배포·스케일 인0SIGTERM 에서 버퍼를 밀어 넣는다 → CA
태스크 크래시최대 109초5 MiB 파트가 PCM 기준 약 109초
RDS 장애 전환60~120초의 세그먼트 쓰기재시도 버퍼로 흡수할 계획

⚠️ STT 재연결은 세션 경계가 아니다. Soniox 연결이 끊겨 다시 붙는 것은 전사 세션을 새로 열 이유가 아니다. 지금 그 구분이 문서에 없다.


4. 종료 후 — 화자 분리에서 확정까지

규칙내용
요약은 화자 확정 뒤에AI 가 화자를 알고 써야 담당자를 제안하고 결정을 사람에게 귀속할 수 있다
요약 문장에 이름을 안 박는다근거 세그먼트를 참조하고 화면이 조인한다. 확정 후에도 화자를 고칠 수 있어야 하므로
매핑겹침이 가장 긴 화자 하나. 동률이면 먼저 시작한 쪽. 안 겹치면 비운다
세그먼트 불변한 번 쓰면 지우고 다시 만들지 않는다. 파생은 따로 둔다
webhook 은 api 가 받는다worker 에는 공개 엔드포인트가 없다
목표 시간을 두지 않는다배치로 돌려 보고 느리면 그때 개선한다

5. 종료 후에 어긋나는 것들

예외처리
화자 분리 실패매핑을 건너뛰고 바로 요약으로. 화면에 배너를 띄우고 화자 없이 진행
사용자가 영영 안 들어옴미정 — 자동 생성할지 계속 기다릴지
잡이 두 번 죽음미정 — 갈 곳이 없다. 워치독이 1회 재디스패치하고 끝이다
분석 실패워치독이 1분마다 스캔해 10분 넘은 것을 1회 재디스패치
늦은 화자 결과가 사용자 수정을 덮음미정

⚠️ 지연 알람에서 화자 확인 대기 를 빼야 한다. 나머지는 시스템이 진행 중인 것이고 이것만 사람을 기다린다. 안 빼면 사용자가 안 들어온 회의가 전부 장애로 잡힌다.