23 lines
777 B
SQL
23 lines
777 B
SQL
-- Queue outbound ActivityPub deliveries so API responses do not wait on
|
|
-- remote inbox latency and failed deliveries can be retried.
|
|
|
|
CREATE TABLE IF NOT EXISTS outgoing_deliveries (
|
|
id TEXT PRIMARY KEY,
|
|
user_id TEXT NOT NULL,
|
|
inbox TEXT NOT NULL,
|
|
activity_id TEXT NOT NULL,
|
|
activity_json TEXT NOT NULL,
|
|
attempts INTEGER NOT NULL DEFAULT 0,
|
|
next_attempt_at TEXT,
|
|
locked_until TEXT,
|
|
delivered_at TEXT,
|
|
failed_at TEXT,
|
|
last_error TEXT,
|
|
created_at TEXT NOT NULL,
|
|
updated_at TEXT NOT NULL,
|
|
UNIQUE(user_id, inbox, activity_id)
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_outgoing_deliveries_due ON outgoing_deliveries(next_attempt_at, locked_until);
|
|
CREATE INDEX IF NOT EXISTS idx_outgoing_deliveries_user_time ON outgoing_deliveries(user_id, created_at DESC);
|