EventFlow GoDelivery reliability lab
A small event · A clearer outcome

When a receiver is down, the event should have a visible path forward.

An order is created, but the service that needs the update is temporarily unavailable. EventFlow accepts the event, records delivery attempts and retries a temporary failure.

Fictional browser walkthrough. This page runs entirely in your browser. It does not start the Go service or send a webhook. The repository contains a separate working Go API and local demo with a receiver that fails once.

Try an event

Send the example. The receiver returns HTTP 503 on the first attempt and HTTP 200 on retry.

Ready

No event has been sent in this walkthrough.

Receiver attempts0
Delivered events0

Delivery history

See the attempt sequence. Repeating the same key and content returns the existing event; changing content with that key creates a conflict.

  1. Waiting for a fictional event.

In the working Go service, PostgreSQL mode stores event state, concurrent workers lease due events, and delivery includes an HMAC signature. A receiver must deduplicate the event ID because retries can produce more than one delivery attempt. Run the local demo to inspect the real HTTP path.