mysql-checkpointing
Installation
SKILL.md
MySQL Checkpointing for n8n
Idempotency is not optional. Any workflow that can be re-run must produce identical results on the second run. MySQL (or Postgres — patterns are identical) is the pragmatic way.
The three checkpoint tables every pipeline needs
1. processed_items — did we already handle this?
CREATE TABLE processed_items (
item_key VARCHAR(255) PRIMARY KEY, -- natural ID (webhook event_id, order_id, etc.)
workflow_name VARCHAR(100) NOT NULL,
processed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
status VARCHAR(20) NOT NULL, -- 'success' | 'failed' | 'skipped'
payload_hash VARCHAR(64), -- SHA256 of payload, detects payload changes
INDEX idx_workflow_status (workflow_name, status),
INDEX idx_processed_at (processed_at)
);