The post says webhooks work fine for side effects like “send a receipt” but fall apart when they are used as the primary mechanism to mirror a provider’s state into your own database. It walks through the usual failure modes: duplicate deliveries, missing events, hard bootstrap problems, poor local development ergonomics, and the ugly reality that consumers end up building dedup tables, replay jobs, cron backfills, and hand-rolled recovery logic anyway. The proposed fix is SCROLL, a draft spec for a cursor-based event feed that can be polled or streamed so consumers can ask for everything after a known point and rebuild state deterministically.
Most of the useful reaction was not “webhooks are good actually.” It was “yes, this is log replication, and the durable log or reconciliation path is the thing that matters.” Several people pointed out that strong implementations already exist in pieces.
Stripe’s events API was treated as the model. Gmail’s history API was cited as the cleaner design, where push only tells you that something changed and the real data comes from a queryable history. Others said SCROLL is converging on patterns that already exist in
CouchDB replication,
Kafka-style consumer streams, and an active
IETF effort called
Braid-HTTP Subscriptions.
The practical consensus was tighter than the post’s protocol pitch. Teams should design around a recoverable pull path first, then layer webhooks on top as hints for lower latency. That gives you one reconciliation mechanism that works during outages, after bugs, and during routine operation. The main pushback was operational. Long-lived
HTTP streams are not always provider-friendly across CDNs and internet-facing infrastructure, and for many businesses a simple cursor-paginated events endpoint plus optional
webhook “poke” is easier to ship and easier to adopt than a new standard. A separate, recurring theme was that the writeup and spec read LLM-assisted, which made some readers less confident in the proposal’s precision on the edge cases that distributed systems live or die on.