eth_*
RPC calls (e.g., eth_getLogs
, eth_getBlockByNumber
).eth_subscribe
, which requires node support.eth_*
calls to recover older missed events.eth_getLogs
to re-fetch missed logs.Feature | WebSockets (Ethers.js/Viem) | Webhooks | ||
---|---|---|---|---|
Interruption Handling | Manual; Requires complex custom logic | Automatic; Built-in queues & retries | ||
Data Recovery | Requires DB + External API for re-sync | Handled by provider; No re-sync logic needed | ||
Dev Complexity | High; Error-prone custom resilience code | Low; Focus on processing incoming POST data | ||
Infrastructure | WSS connection + DB + Potential Data API cost | Application API endpoint | ||
Data Integrity | Risk of gaps if recovery logic fails | High; Ensures eventual delivery | ||
Payload | Often raw; Requires extra calls for context | Typically enriched and ready-to-use | ||
Multiple addresses | Manual filtering or separate listeners per address | Supports direct configuration for multiple addresses | ||
Listen to wallet addresses | Requires manual block/transaction filtering | Can monitor wallet addresses and smart contracts |