{"product_id":"event-driven-pub-sub-bus-for-n8n-webhooks-http-slack","title":"Event-Driven Pub\/Sub Bus for n8n: Webhooks, HTTP \u0026 Slack","description":"\u003ch3\u003eEvent-Driven Pub\/Sub Bus for n8n — Webhooks, HTTP Subscribers, and Slack Alerts\u003c\/h3\u003e\n\u003cp\u003eThis n8n workflow acts as an \u003cstrong\u003eevent-driven Pub\/Sub bus\u003c\/strong\u003e: it receives event envelopes via \u003cstrong\u003eHTTP webhook\u003c\/strong\u003e or \u003cstrong\u003eExecute Workflow\u003c\/strong\u003e, validates and stores them in an external event store, then fans out deliveries to subscriber HTTP endpoints with \u003cstrong\u003eexponential backoff retries\u003c\/strong\u003e, a \u003cstrong\u003edead-letter queue\u003c\/strong\u003e, and \u003cstrong\u003eSlack\u003c\/strong\u003e notifications on failures.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eReceives events\u003c\/strong\u003e either from an HTTP POST webhook or from another workflow using \u003cstrong\u003eExecute Workflow\u003c\/strong\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eValidates \u0026amp; normalizes\u003c\/strong\u003e the event envelope fields: \u003cem\u003eeventType, eventId, source, timestamp, payload\u003c\/em\u003e. Invalid requests are rejected with a \u003cstrong\u003e400\u003c\/strong\u003e response.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eAppends valid events\u003c\/strong\u003e to an \u003cstrong\u003eexternal event store\u003c\/strong\u003e via HTTP, then returns a \u003cstrong\u003e202 Accepted\u003c\/strong\u003e webhook response.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eRoutes and fans out\u003c\/strong\u003e deliveries by \u003cstrong\u003eeventType\u003c\/strong\u003e to subscriber services via HTTP (including an \u003cem\u003eOrder Service\u003c\/em\u003e, \u003cem\u003eNotification Service\u003c\/em\u003e, and an \u003cem\u003eAnalytics Service\u003c\/em\u003e catch-all for unknown types).\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eRetries on failure\u003c\/strong\u003e using \u003cstrong\u003eexponential backoff\u003c\/strong\u003e up to a configurable maximum number of attempts.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eDead-letter handling\u003c\/strong\u003e: once retries are exhausted, it writes the failed delivery to an \u003cstrong\u003eexternal dead-letter queue\u003c\/strong\u003e over HTTP and posts an \u003cstrong\u003ealert to a Slack channel\u003c\/strong\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eAcknowledges success\u003c\/strong\u003e by notifying the event store over HTTP when delivery completes successfully.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eDecouple services by publishing \u003cem\u003eorder\u003c\/em\u003e and \u003cem\u003enotification\u003c\/em\u003e events from n8n while subscribers receive HTTP callbacks.\u003c\/li\u003e\n  \u003cli\u003eCentralize event ingestion from webhooks and route unknown events to Analytics without breaking the pipeline.\u003c\/li\u003e\n  \u003cli\u003eImprove reliability for SaaS integrations using retries, dead-letter queue escalation, and Slack failure alerts.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eNodes\/logic:\u003c\/strong\u003e \u003cem\u003eif\u003c\/em\u003e, \u003cem\u003eset\u003c\/em\u003e, \u003cem\u003ecode\u003c\/em\u003e, \u003cem\u003ewait\u003c\/em\u003e, \u003cem\u003emerge\u003c\/em\u003e, \u003cem\u003eslack\u003c\/em\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eIntegrations (HTTP):\u003c\/strong\u003e event store append URL, event store ack URL, subscriber HTTP endpoints, and external dead-letter queue URL.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eSlack:\u003c\/strong\u003e failure alerts to a configured channel when deliveries land in the dead-letter queue.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eTo set it up, provide reachable HTTP endpoints for the event store append\/ack and dead-letter queue, then replace the placeholders in the workflow configuration.\u003c\/p\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":46066366546099,"sku":"N8N-19741","price":69.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/eu_EeT57J2CnFfioUUlcp_YSPJqymN.png?v=1789895231","url":"https:\/\/buyflowscripts.com\/products\/event-driven-pub-sub-bus-for-n8n-webhooks-http-slack","provider":"N8N Commerce","version":"1.0","type":"link"}