The problem
Stripe, GitHub, and Slack all POST JSON to your endpoint. You must verify signatures, ack quickly, and process asynchronously. Node handlers often block on the model call anyway; Python workers need Celery and a broker to do the same thing.
Why Ecko
- Respond then process
- Return
http.json({ ok: true })immediately and hand the body to a background task viabackgroundor channels. The provider gets its ack within milliseconds. - Typed event structs
- Decode webhook JSON into records. A malformed or incomplete payload fails before it reaches business logic.
- ecko dev reload
- Iterate on handlers with
ecko dev server.ecko- the server restarts on save without you managing nodemon or uvicorn reload quirks.
In practice
fn stripe_webhook(req) {
background(process_event, req.body)
http.json({ received: true })
}
Try it on your workload.