Something went wrong. Try again.
Something went wrong. Try again.
782 B · 17 lines
SQL
at main
123456789101112131415161718CREATE TABLE IF NOT EXISTS outbox ( id INTEGER PRIMARY KEY, subject_type TEXT NOT NULL, subject_id INTEGER NOT NULL, kind TEXT NOT NULL, payload TEXT NOT NULL, dedupe_key TEXT, status TEXT NOT NULL DEFAULT 'pending' CHECK (status IN ('pending', 'inflight', 'done', 'failed')), attempts INTEGER NOT NULL DEFAULT 0, next_attempt_at TEXT NOT NULL, last_error TEXT, created_at TEXT NOT NULL, updated_at TEXT NOT NULL);CREATE INDEX IF NOT EXISTS idx_outbox_drainable ON outbox(status, next_attempt_at);CREATE UNIQUE INDEX IF NOT EXISTS uq_outbox_dedupe ON outbox(subject_id, kind, dedupe_key) WHERE dedupe_key IS NOT NULL AND status IN ('pending', 'inflight');