Enforce reorg-aware, idempotent indexing with stable event identity keys, replay safety, and clear optimistic vs confirmed consistency tiers. Use when touching DB writes or replay logic.
التثبيت
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
Enforce reorg-aware, idempotent indexing with stable event identity keys, replay safety, and clear optimistic vs confirmed consistency tiers. Use when touching DB writes or replay logic.
Indexer Reorg + Idempotency
When to use
Adding/changing event handlers, DB schema, or replay/re-sync behavior.
Any modification to how you store logs, claims, or day/month aggregates.
Goal (Definition of Done)
✅ Every handler is safe to replay (idempotent).
✅ Reorgs do not leave “ghost” rows or double-counts.
✅ You can rebuild projections from raw events.
Canonical identity keys
Use unique keys:
(txHash, logIndex) as primary event identity (preferred)
or (blockNumber, logIndex) only if txHash is unavailable (rare)
Store raw logs in event_raw (or equivalent) to support rebuilds.
Reorg handling
On reorg, revert projections derived from orphaned blocks.