A sample project that has a WebHook Publisher and Subscriber:
- HTTP API to create subscriber endpoints with unique URLs
- HTTP API to create webhooks on the publisher using the subscriber endpoint URLs.
- Publisher events are written to the webhooks'
out
stream. Out streams are limited to a maxium size. - A delivery function pushes events to the subscriber endpoints.
- Deliveries, including failures, are written to the webhook's
delivery
stream. - Delivery failures are retried with exponential back-off.
- HTTP APIs to read the
out
anddelivery
stream for UI. - Streams have limits applied - max count and max age. Undelivered events are automatically purged.
- Subscribers in long term failure are disabled after a configurable timespan.
- Subscribers leverage SQL Stream Store to handle idempotent receiving.
TODO: message resending, more extensive error handling.