UStackUStack
Outpost icon

Outpost

Outpost é infraestrutura open-source para entregar eventos com fiabilidade a webhooks e filas. Disponível como serviço gerenciado ou self-hosted Go/Docker.

Outpost

O que é Outpost?

Outpost é infraestrutura open-source para entregar eventos a destinos preferidos pelo usuário, como webhooks de saída e vários sistemas de eventos/filas. Foi projetado para ajudar aplicativos a enviar notificações de eventos de forma confiável, com foco em reduzir a complexidade operacional em comparação com construir e manter lógica de entrega de webhooks você mesmo.

Outpost pode ser usado como serviço gerenciado pela Hookdeck ou self-hosted a partir do código open-source. Seu propósito principal é a entrega de eventos de saída: você publica eventos e Outpost os roteia para destinos configurados usando tópicos/inscrições e garantias de entrega.

Principais Recursos

  • Garantias de entrega at-least-once: Mensagens são entregues pelo menos uma vez, visando prevenir perda de eventos.
  • Inscrições baseadas em tópicos: Padrões publish/subscribe para facilitar o mapeamento de tipos de eventos a destinos.
  • Retries automáticos e manuais: Configure retries automáticos ou acione retries via API ou portal do usuário.
  • Múltiplos destinos de entrega: Suporte a entrega via webhook mais destinos de eventos como AWS SQS, RabbitMQ, Pub/Sub, EventBridge, Kafka e mais (conforme listado na página).
  • Suporte multi-tenant: Execute múltiplos tenants em uma única implantação de Outpost.
  • Portal de desenvolvedor e controles de destinos: Visualize métricas e gerencie, depure e observe destinos de eventos.
  • Suporte a OpenTelemetry: Inclui traces, métricas e logs do OpenTelemetry.
  • Idempotência e headers de entrega: Fornece headers de idempotência, timestamps e assinaturas (incluindo rotação de assinaturas), com mecanismo de opt-out.
  • Implante do seu jeito (gerenciado ou self-hosted): Entregue como binário Go ou imagem Docker para self-hosting; o mesmo Outpost é usado se gerenciado ou self-hosted.

Como Usar Outpost

  1. Escolha um modelo de implantação: Comece com o serviço gerenciado (“Get started”) ou execute a versão open-source self-hosted usando a distribuição fornecida (binário Go ou imagem Docker).
  2. Defina destinos: Configure um ou mais alvos de entrega (por exemplo, um endpoint webhook ou destino de fila/bus).
  3. Configure tópicos e inscrições: Crie mapeamentos entre tópicos de eventos (tipos de eventos) e quais destinos devem recebê-los.
  4. Publique eventos: Envie eventos usando a API do Outpost ou publicando em uma fila que o Outpost possa ler.
  5. Opere e solucione problemas: Use o portal do usuário para observar métricas de entrega, gerenciar destinos e acionar retries quando necessário.

Casos de Uso

  • Entrega confiável de webhooks de saída para eventos de app: Roteie eventos de aplicativos (ex.: user.created, order.created) para destinos webhook com entrega at-least-once e retries.
  • Publicação baseada em fila para desacoplar produtores da entrega: Publique eventos em uma fila e configure Outpost para lê-la, depois entregue a sistemas downstream.
  • Fan-out para múltiplos destinos de eventos: Envie os mesmos ou tópicos de eventos relacionados a diferentes destinos (ex.: um webhook mais uma fila/bus de mensagens) usando configuração de tópico/inscrição.
  • Entrega de eventos multi-tenant: Atenda múltiplos tenants de uma única implantação de Outpost, isolando configuração de entrega por tenant.
  • Depuração e visibilidade operacional para infraestrutura de eventos: Use o portal para rastrear status de destinos e resultados de entrega, e use retries manuais em caso de falhas.

FAQ

  • Posso executar Outpost eu mesmo, ou preciso do serviço gerenciado? Outpost está disponível como serviço gerenciado e como software open-source para self-hosting.

  • Como o Outpost lida com retries? Ele suporta retries automáticos e também permite retries manuais via API ou portal do usuário.

  • Qual garantia de entrega o Outpost fornece? A página afirma que as mensagens são entregues at-least-once.

  • O Outpost fornece recursos de observabilidade? Sim. Inclui suporte a OpenTelemetry para traces, métricas e logs, e fornece um portal de desenvolvedor para métricas e observação de destinos.

  • Como o Outpost assina e protege entregas para webhooks? A página menciona headers de timestamp e assinatura (com rotação de assinaturas) e headers de idempotência, junto com um mecanismo de opt-out.

Alternativas

  • Crie seu próprio despachante de webhooks: Construa entrega personalizada de webhooks, retentativas e segurança. Isso transfere o ônus operacional e de confiabilidade para a equipe do seu aplicativo.
  • Sistemas genéricos de eventos/filas sem camada de entrega de saída: Use plataformas que armazenam/transportam eventos (filas ou barramentos) e implemente sua própria lógica de consumidor para enviar para webhooks/destinos.
  • Outros serviços gerenciados de entrega de webhooks/eventos: Use um serviço hospedado que roteia eventos para endpoints de webhooks; compare com base em como eles lidam com retentativas, garantias de entrega e entrega para múltiplos destinos.
  • Componentes self-hosted de roteamento de eventos: Procure por componentes open-source ou self-hostable focados em roteamento de eventos de produtores para destinos, especialmente aqueles com semântica de assinatura/tópico e ferramentas operacionais.
Outpost | UStack