Distribution de webhooks sortants

« On devrait proposer des webhooks. »

On s'imagine qu'il suffit d'un simple endpoint. En réalité, c'est toute cette liste — ainsi que la moitié que tout le monde oublie jusqu'à ce qu'un client demande pourquoi un événement de mardi dernier n'est jamais arrivé.

  • Signature HMAC, selon un schéma déjà maîtrisé par les récepteurs
  • Horodatage et identifiant de distribution dans la signature, pour éviter les rejeux
  • Tentatives exponentielles qui résistent même si un récepteur est indisponible toute la journée
  • Jitter, pour éviter que toutes les distributions en file d'attente ne s'abattent en trombe à la reprise
  • Savoir distinguer les erreurs qui justifient une nouvelle tentative de celles qui ne le justifient pas
  • Rotation des secrets avec période de chevauchement, car nul ne peut basculer en un seul instant
  • Un journal immuable (append-only) de chaque tentative et réponse
  • Un moyen pour vos clients de consulter ce journal sans devoir vous envoyer d'e-mail

HookPulse rassemble tout cela, derrière un simple POST.

Sans carte bancaire. 2 000 distributions incluses dans l'essai.

Une seule requête entrante. Nous gérons tout le reste.

Votre handler répond immédiatement — un webhook ne devrait jamais exposer votre propre requête aux lenteurs du serveur d'un tiers. À partir de là, c'est notre problème : signé, distribué, réessayé et journalisé.

Voir l'extrait de code de vérification
votre backend
await fetch('https://hookpulse.altixcode.com/api/v1/apps/APP_ID/events', {
  method: 'POST',
  headers: { Authorization: 'Bearer hp_…' },
  body: JSON.stringify({
    type: 'invoice.paid',
    payload: { id: 'in_123', amount: 4900 },
    dedupeKey: 'invoice-123-paid',
  }),
})

Pourquoi ne pas le développer soi-même ?

La plupart des équipes s'y essaient. La signature et la première tentative prennent une journée de travail. Le reste — jitter, fenêtres anti-rejeu, chevauchement des rotations, journal accessible aux clients — est la partie abandonnée en cours de route, et c'est précisément celle que vos clients remarquent.

La liste complète, pas seulement la première moitié

La signature et une première relance sont développées en une après-midi par presque toutes les équipes qui s'y mettent. Le jitter, les règles de réessai, le chevauchement lors de la rotation et un journal compréhensible pour les clients sont sacrifiés face aux délais — et c'est ce que remarque un client quand cela manque.

L'URL de votre endpoint est revérifiée avant chaque tentative, pas simplement enregistrée

Un nom d'hôte résolu sur votre réseau privé est refusé lors de l'enregistrement et refusé à nouveau, par adresse résolue, immédiatement avant chaque tentative de distribution — et aucune redirection n'est jamais suivie vers un hôte que vous n'avez pas désigné. Un émetteur de webhooks qui ne vérifie qu'une seule fois permet à l'endpoint mal configuré ou malveillant d'un client d'explorer votre infrastructure.

Un journal visible par vos clients, pas seulement par vous

Le journal de distribution est aujourd'hui fourni sous forme d'API ciblée, signée et limitée dans le temps, conçue pour être intégrée directement dans vos pages de paramètres — ainsi, la question « pourquoi mon webhook n'est-il pas arrivé ? » cesse d'être un ticket de support auquel vous devez répondre manuellement.

Le calendrier des tentatives, clairement explicité plutôt qu'implicite.

Six tentatives réparties sur plus de sept heures, chacune avec jitter pour éviter qu'un récepteur qui redémarre ne reçoive tout d'un coup. Ensuite, nous nous arrêtons et vous prévenons — une distribution en échec toute la journée nécessite une intervention humaine, pas une requête supplémentaire.

  1. immédiatement
  2. +15stentative 2
  3. +2mtentative 3
  4. +15mtentative 4
  5. +1htentative 5
  6. +6htentative 6

Facturé à la livraison.

Un événement diffusé vers cinq points de terminaison équivaut à cinq livraisons, car cela représente cinq requêtes effectuées et cinq séries de nouvelles tentatives dont nous avons la charge. Les nouvelles tentatives pour une même livraison ne sont pas refacturées.

Pro

A platform with customers who want webhooks.

$49/ mois

100,000 deliveries / month

Commencer avec Pro

Scale

A marketplace, or an API with real traffic.

$149/ mois

1,000,000 deliveries / month

Commencer avec Scale