ADR-0044: 정정(CORRECTION) 전달 폐지 — 무효화(INVALIDATION) 단독¶
맥락¶
정정(CORRECTION) 전달 라이프사이클은 스키마(tenant_delivery CHECK 3분기)·와이어
계약(event-bundle oneOf 3형상)·서빙 매핑(tenant-sync-api)·소비자 상태기계
(screening-worker 정정 재점검, ADR-0041)까지 전 구간이 구현돼 있었지만, 생산자(발번)는
한 번도 구현된 적이 없다 — analysis-engine fan-out 은 NEW 만 발번하고(ALPHA-493), 정정
전달은 로컬 시드로만 시연됐다. 2026-08-01 기능 완성도 전수 감사가 이 "소비자만 살아있는
발번 대기" 상태를 확정했고, 사용자가 정정 개념 자체를 재검토했다.
재검토의 근거: 이 시스템의 산출물은 당일 등락 설명이라는 소멸성 콘텐츠다. 정정본이 검수를 다시 거쳐 나갈 시점이면 설명의 효용 시한이 거의 끝나 있어 재게시의 실익이 없고, 오류를 발견했을 때 "고쳐서 다시 내보내는 것"보다 "내리는 것"(INVALIDATION)이 컴플라이언스 관점에서 더 보수적이며 증권사 검수 조직에 설명하기 쉽다.
결정¶
CORRECTION 전달 유형을 계약에서 폐지하고, 전달 라이프사이클을 NEW·INVALIDATION 2형상으로 축소한다 (사용자 확정 2026-08-01).
- INVALIDATION 의 의미는 "특정 설명(리비전) 단위 무효화"다 — (종목, 거래일) 슬롯을 봉인하는 것이 아니다. 목적이 실시간에 가까운 제공이므로, 무효화 이후 같은 종목에 새 설명(NEW)을 발번할 수 있는지는 발번 정책 소관이며 이 결정의 범위 밖이다(현행 day-grain 게이트·게시 grain 선점은 그대로 유지).
- 온프렘 정정 재점검 경로(ADR-0041
screenCorrection), 리비전 체인 (supersedes_item_id·correction_reason), CORRECTED terminal 상태를 제거한다. 틀린 게시의 유일한 종결 경로는 INVALIDATED(즉시 비노출)다. - Cloud 운영자 정정 오버레이(admin_activity_log, ALPHA-602)는 유지한다 — 그것은 cloud 콘솔 내부의 감사·표시 모델이고 테넌트 전파와 무관하다. 다만 "오버레이 정정의 테넌트 전파" 후속은 더 이상 존재하지 않는다 — 전파 수단은 INVALIDATION 발번뿐이다 (ALPHA-440 을 INVALIDATION 발번 단독으로 현행화).
대안¶
- CORRECTION 발번을 구현해 라이프사이클 완성 — 소멸성 콘텐츠에 정정 재게시의 실익이 없고, 발번·정정 등록 UI·재점검 유지 비용만 남는다. 배제.
- INVALIDATION 후 같은 grain 재발번을 지금 설계 — day-grain 게이트를 뚫는 재발번은 사실상 CORRECTION 의 재구현이다. 필요가 실증되면 발번 정책에서 별도 결정한다. 이연.
- 소비자 코드를 남겨두고 발번만 안 함 — 죽은 라이프사이클이 계약·스키마·코드에 남아 감사 때마다 미구현으로 오인된다(Rule 12 — 어중간한 상태를 남기지 않는다). 배제.
결과¶
- 계약:
event-bundle.schema.jsononeOf 3→2 형상,tenant_deliveryCHECK 2분기 (마이그레이션V202608011200), event-bundle-schema.md· sync-protocol.md 전달 유형 서술 축소. - 온프렘:
analysis_item에서 CORRECTED 상태를 제거하고 기존 CORRECTED 행은 INVALIDATED 로 이관·이력을 남긴다(V202608011210).supersedes_item_id·correction_reason은 writer/reader 코드만 제거하고 컬럼은 폐기 표기로 존치했다가 별도 수축 마이그레이션에서 DROP 했다(expand-contract —V202608012000, ALPHA-674).analysis_item_status_history의 CHECK 어휘는 append-only 원장 보존을 위해 유지한다 — 과거 이력 전용 어휘이며 새 쓰기는 없다. - 코드: screening-worker
screenCorrection·tenant-sync-api CORRECTION 매핑·검수 콘솔 정정본 표시(UI·DTO) 제거. CORRECTION entry 수신은 미지 타입과 동일하게 fail-loud. - 문서: state-machine.md 정정 플로우·리비전 모델 절 제거, permission-matrix.md·tenant-console.md "정정 등록" 액션 제거. "최종 문구 수정"(콘솔 내 게시본 수정, ALPHA-613)은 별개 기능으로 유지된다.
- 로컬 시드(
R__seed_local_demo_delivery.sql)의 전달 서사는 NEW·INVALIDATION 2경로로 축소. - 결정 주체·경위: 사용자 확정(2026-08-01) — 기능 완성도 감사 후속, Refs: ALPHA-673.