UStackUStack
Outpost icon

Outpost

Outpost est une infrastructure open-source fiable pour acheminer des événements applicatifs vers des webhooks ou des files. En service managé ou en auto-hébergement.

Outpost

Qu'est-ce qu'Outpost ?

Outpost est une infrastructure open-source pour acheminer des événements vers les destinations préférées des utilisateurs, telles que les webhooks sortants et plusieurs systèmes d'événements/files. Elle est conçue pour aider les applications à envoyer des notifications d'événements de manière fiable, en réduisant la complexité opérationnelle par rapport à la construction et à la maintenance d'une logique de livraison de webhooks en interne.

Outpost peut être utilisé en tant que service managé par Hookdeck ou auto-hébergé à partir du code open-source. Son objectif principal est l'acheminement d'événements sortants : vous publiez des événements et Outpost les route vers les destinations configurées en utilisant des topics/ablonnements et des garanties de livraison.

Fonctionnalités clés

  • Garanties de livraison au moins une fois : Les messages sont livrés au moins une fois, pour éviter la perte d'événements.
  • Abonnements basés sur des topics : Modèles publish/subscribe pour faciliter le mappage des types d'événements vers les destinations.
  • Rétries automatiques et manuels : Configurer des rétries automatiques, ou les déclencher via une API ou le portail utilisateur.
  • Multiples destinations de livraison : Support pour la livraison par webhook plus des destinations d'événements telles que AWS SQS, RabbitMQ, Pub/Sub, EventBridge, Kafka, et plus (comme listé sur la page).
  • Support multi-tenant : Exécuter plusieurs tenants sur un seul déploiement Outpost.
  • Portail développeur et contrôles des destinations : Consulter les métriques et gérer, déboguer et observer les destinations d'événements.
  • Support OpenTelemetry : Inclut des traces, métriques et logs OpenTelemetry.
  • Idempotence et en-têtes de livraison : Fournit des en-têtes d'idempotence, horodatages et signatures (y compris rotation des signatures), avec un mécanisme d'opt-out.
  • Déployez comme vous voulez (managé ou auto-hébergé) : Livré sous forme de binaire Go ou image Docker pour l'auto-hébergement ; le même Outpost est utilisé en mode managé ou auto-hébergé.

Comment utiliser Outpost

  1. Choisir un modèle de déploiement : Commencez avec le service managé (« Get started ») ou exécutez la version open-source auto-hébergée en utilisant la distribution fournie (binaire Go ou image Docker).
  2. Définir les destinations : Configurer une ou plusieurs cibles de livraison (par exemple, un endpoint webhook, ou une destination file/bus).
  3. Configurer topics et abonnements : Créer des mappings entre les topics d'événements (types d'événements) et les destinations qui doivent les recevoir.
  4. Publier des événements : Envoyer des événements via l'API Outpost ou en publiant dans une file qu'Outpost peut lire.
  5. Opérer et dépanner : Utiliser le portail utilisateur pour observer les métriques de livraison, gérer les destinations et déclencher des rétries si nécessaire.

Cas d'usage

  • Livraison fiable de webhooks sortants pour événements applicatifs : Acheminer des événements applicatifs (ex. user.created, order.created) vers des destinations webhook avec livraison au moins une fois et rétries.
  • Publication basée sur file pour découpler producteurs de livraison : Publier des événements dans une file et configurer Outpost pour la lire, puis livrer vers les systèmes en aval.
  • Fan-out vers plusieurs destinations d'événements : Envoyer les mêmes ou des topics d'événements liés vers différentes destinations (ex. un webhook plus une file/bus) via configuration topic/abonnement.
  • Livraison d'événements multi-tenant : Servir plusieurs tenants depuis un seul déploiement Outpost, en isolant la configuration de livraison par tenant.
  • Débogage et visibilité opérationnelle pour la plomberie d'événements : Utiliser le portail pour suivre l'état des destinations et les résultats de livraison, et utiliser des rétries manuelles en cas d'échecs.

FAQ

  • Puis-je exécuter Outpost moi-même, ou ai-je besoin du service managé ? Outpost est disponible en tant que service managé et comme logiciel open-source pour auto-hébergement.

  • Comment Outpost gère-t-il les rétries ? Il supporte les rétries automatiques et permet aussi les rétries manuelles via une API ou le portail utilisateur.

  • Quelle garantie de livraison fournit Outpost ? La page indique que les messages sont livrés au moins une fois.

  • Outpost fournit-il des fonctionnalités d'observabilité ? Oui. Il inclut le support OpenTelemetry pour traces, métriques et logs, et fournit un portail développeur pour métriques et observation des destinations.

  • Comment Outpost signe et sécurise les livraisons vers les webhooks ? La page mentionne des en-têtes d'horodatage et de signature (avec rotation des signatures) et des en-têtes d'idempotence, ainsi qu'un mécanisme d'opt-out.

Alternatives

  • Développer votre propre répartiteur de webhooks : Construisez une livraison de webhooks personnalisée, des tentatives de renvoi et la sécurité. Cela transfère le fardeau opérationnel et de fiabilité sur votre équipe applicative.
  • Systèmes génériques d'événements/files sans couche de livraison sortante : Utilisez des plateformes qui stockent/transportent les événements (files ou bus) et implémentez votre propre logique de consommateur pour pousser vers les webhooks/destinations.
  • Autres services managés de livraison de webhooks/événements : Utilisez un service hébergé qui route les événements vers des points de terminaison webhook ; comparez en fonction de leur gestion des tentatives de renvoi, des garanties de livraison et de la livraison multi-destinations.
  • Composants auto-hébergés de routage d'événements : Recherchez des composants open-source ou auto-hébergeables axés sur le routage d'événements des producteurs vers les destinations, en particulier ceux avec sémantique d'abonnement/sujet et outils opérationnels.