-- 371_publish_outbox.sql -- transactional outbox — 저작/4-A 트랜잭션이 같은 tx에서 여기 INSERT(P0-1 규율), -- 단일 발행 워커가 id(커밋순) 순으로 drain 하며 published 에 rev 부여(소스 updated_at 폴링 금지=갭 재발). -- processed_at = 워커 drain 시 스탬프(NULL=미처리). payload/hash 는 enqueue 시점 스냅샷. CREATE TABLE IF NOT EXISTS publish_outbox ( id BIGSERIAL PRIMARY KEY, kind VARCHAR(40) NOT NULL, source_id BIGINT NOT NULL, payload JSONB NOT NULL, payload_hash TEXT NOT NULL, schema_version SMALLINT NOT NULL DEFAULT 1, deleted BOOLEAN NOT NULL DEFAULT false, created_at TIMESTAMPTZ NOT NULL DEFAULT now(), processed_at TIMESTAMPTZ );