Guia para construir ou comprar a sua infraestrutura de webhooks

Até aqui, na nossa série sobre soluções de gestão de webhooks, vimos como desenhar um blueprint de arquitetura. Também mergulhamos em cada componente que compõe a solução de webhooks proposta e discutimos como a nossa infraestrutura de webhooks pode ser monitorada para melhorar a performance, detectar defeitos e evitar falhas.

Este artigo busca responder a uma pergunta muito importante para empresas que trabalham com webhooks:

Você deve construir essa solução de webhooks ou comprar uma pronta?

A resposta curta para a maioria dos times: se os webhooks são um facilitador para o seu negócio, e não o produto principal que você vende, compre. Milhares de times tomaram essa decisão, escolhendo infraestrutura de webhooks gerenciada como a da Hookdeck, que cuida de enfileiramento, verificação, retries, observabilidade e entrega para que os times de engenharia foquem no produto. O restante deste guia ajuda você a avaliar os fatores em detalhe.

Vamos discutir as duas opções observando os cenários em que é favorável para um time construir e aqueles em que é melhor comprar a solução de webhooks. Vou apresentar argumentos técnicos e de negócio para sustentar cada abordagem.

Animado? Vamos lá.

Recapitulando a solução

Antes de começar, vamos olhar de novo os requisitos centrais da nossa solução de webhooks. São os requisitos definidos no artigo de design que deram origem ao blueprint arquitetural.

Requisito do sistemaCaracterística(s) de arquitetura
Nunca perder um webhookConfiabilidade, performance, disponibilidade
Refazer webhooks que falharamRecuperabilidade, robustez, continuidade, tolerância a falhas
Suportar a cargaEscalabilidade, confiabilidade
Ter visibilidade sobre todo o ciclo de vida do webhookSuportabilidade/monitoramento
Receber alertas quando houver problemasSuportabilidade/monitoramento, recuperabilidade, disponibilidade
Configurar o comportamento do webhook (alertas, retries) conforme a importância dele para o sucesso do negócioConfigurabilidade, tolerância a falhas

Fatores técnicos e de negócio a considerar entre construir ou comprar

Antes de começar, vamos definir alguma terminologia tanto do lado técnico quanto do lado de negócio. Os termos abaixo são os fatores que usaremos para sustentar as decisões de construir ou comprar a solução de webhooks.

Fatores técnicos

FatorDefinição
ControlePropriedade da tecnologia e das escolhas tecnológicas.
ConfiguraçãoA capacidade de ajustar as configurações do sistema para controlar o fluxo de webhooks e melhorar a confiabilidade e a performance do sistema.
ManutençãoA capacidade de manter a solução de webhooks operando em níveis ótimos, melhorar a performance, corrigir bugs e atualizar partes do sistema com o tempo.
EscalabilidadeA capacidade do sistema de se expandir diante da pressão de uma carga crescente de webhooks, sem degradar a performance.
InteroperabilidadeA capacidade da solução de se integrar com aplicações e infraestruturas de software já existentes na empresa.
Exigência de conhecimento técnicoA curva de aprendizado não deve ser íngreme demais e a documentação deve estar disponível para todos. O sistema também não deve depender de silos de conhecimento.

Fatores de negócio

FatorConstruir
Time to marketO menor tempo possível para colocar a solução de webhooks em produção, considerando a agilidade do processo de desenvolvimento, a velocidade dos testes e um processo de deploy rápido.
Custos de engenharia e manutençãoO custo de desenvolvimento e os custos recorrentes de manutenção para manter a solução de webhooks operando em níveis ótimos.
Onboarding de engenheirosQuanto tempo leva para integrar novas pessoas de engenharia, que precisam de algum tempo para entender a arquitetura e as decisões tomadas ao longo do tempo antes de elas chegarem.
Conjunto de funcionalidadesA flexibilidade de adicionar novas funcionalidades do roadmap do produto à solução de webhooks.
QualidadeA confiança e a confiabilidade de uma aplicação bem construída e testada em campo.

Agora que temos uma boa noção dos termos que sustentarão os argumentos, vamos discutir os melhores cenários para construir ou comprar uma solução de webhooks.

Construir a infraestrutura de webhooks

Construir a sua solução de webhooks é o processo de usar especialistas internos ou contratados para desenvolver do zero uma solução que atenda a todos os requisitos definidos no nosso blueprint de design.

Em que cenário você deve escolher essa opção? Qual é o perfil de um time que deveria preferir construir a própria infraestrutura de webhooks em vez de comprar uma pronta?

  • Você tem um conjunto de funcionalidades muito específico e único que a sua solução de webhooks precisa suportar
  • Você planeja vender o seu software como produto (e não como serviço)
  • Você está disposto a dar aos processos de planejamento, desenvolvimento e testes todo o tempo que eles exigirem
  • Você tem acesso a profissionais capazes de assumir o projeto

Se a sua situação atual bate com pelo menos dois dos pontos acima, então vale considerar seriamente construir uma solução de webhooks do zero.

Se você concluiu, a partir dos pontos acima, que construir a solução de webhooks é o caminho para você e o seu time, abaixo estão alguns dos benefícios dessa abordagem, tanto do lado técnico quanto do lado de negócio:

  • Configuração: se você precisa de bastante customização no fluxo dos seus webhooks — por exemplo, checagens de validação, transformações de dados peculiares ou throttling condicional —, há uma grande vantagem em desenvolver a sua própria infraestrutura de webhooks, já que isso abre espaço para configuração e customização mais específicas.
  • Controle: construir a sua infraestrutura de webhooks dá a você controle total sobre as funcionalidades. Você também controla quando aplicar atualizações de software ou adicionar novas funcionalidades, e qual tecnologia usar em cada componente (por exemplo, RabbitMQ em vez de Kafka para filas de mensagens) com base na facilidade de uso e/ou na preferência do seu time.
  • Manutenibilidade: especialistas que querem impor a própria cultura de manutenção podem aproveitar a abertura de construir do zero. Por exemplo, construir permite manter versões específicas do software dentro da arquitetura e atualizar quando você achar que é o passo certo para o seu time. Você também pode desenhar a sua estratégia de escalabilidade conforme os parâmetros que preferir. Como você conhece bem a capacidade e o throughput dos componentes da sua arquitetura, consegue estimar melhor quantos recursos são necessários para escalá-la e manter a performance diante de uma carga crescente de webhooks.
  • Interoperabilidade: nenhuma solução de webhooks existe isolada — ela complementa outros sistemas que já fazem parte do ecossistema de aplicações da empresa. Construir a sua solução de webhooks permite desenhá-la para se integrar corretamente com as aplicações que você já tem.
  • Conjunto de funcionalidades: quando você é dono da tecnologia e controla todas as escolhas tecnológicas, pode projetar o sistema para ser extensível de formas customizadas. Isso ajuda a trazer novas funcionalidades com facilidade, por mais únicas ou peculiares que sejam. Além disso, você não depende de um time externo para desenvolver novos recursos ou lançar atualizações.

Opções para construir a sua infraestrutura de webhooks

Existem diferentes abordagens que você pode adotar ao construir a sua solução de webhooks. Com base no nosso blueprint, vamos discutir três formas de implementar uma solução de webhooks customizada.

1) A abordagem open source

Envolve usar exclusivamente tecnologias open source na sua stack. Com os componentes identificados, você pode usar software open source como RabbitMQ ou Apache Kafka para mensageria, Nginx para balanceamento de carga, Prometheus para monitoramento de métricas e Elastisearch para logging.

Usar uma stack composta por tecnologias open source oferece a maior amplitude de opções de configuração e customização. Você também fica livre para escolher o tipo de ambiente de deploy da sua solução de webhooks.

Para ver uma demonstração de como construir uma solução de webhooks com tecnologias open source, veja o nosso artigo sobre opções de implementação de solução de webhooks.

2) A abordagem de provedor de nuvem

Essa abordagem usa os serviços oferecidos por provedores de nuvem completos como Amazon Web Services (AWS), Google Cloud Platform (GCP) e Microsoft Azure. Esses provedores oferecem serviços que podem ser usados para implementar qualquer um dos componentes do blueprint da solução de webhooks.

Uma grande vantagem dessa abordagem é a velocidade de deploy e a necessidade mínima (ou nula) de código. A maioria dos serviços também já traz recursos de escalabilidade embutidos.

Para ver uma demonstração de como construir uma solução de webhooks com serviços AWS, veja o nosso artigo sobre opções de implementação de solução de webhooks.

3) A abordagem híbrida

Esse estilo é mais pragmático na implementação da solução de webhooks, combinando o melhor das duas abordagens anteriores. Como os componentes são desacoplados, você pode escolher tecnologias open source para alguns deles e serviços de nuvem para outros.

Por exemplo, você pode implantar um API gateway ou load balancers com Nginx enquanto usa o AWS SQS para o enfileiramento de mensagens. Assim, você usa tecnologias open source nos componentes em que tem proficiência e quer controle total, enquanto contrata serviços de nuvem para os demais e aproveita a escalabilidade, a qualidade e a facilidade de uso já embutidas.

Compre quando...

Para a maioria dos times, comprar infraestrutura de webhooks é a decisão certa. Veja quando isso é claramente a melhor opção:

  • Os webhooks viabilizam o seu negócio, mas não são o produto. Se você está construindo um SaaS, uma plataforma de e-commerce ou um app de fintech que depende de webhooks da Stripe, da Shopify ou de outros provedores, o seu tempo de engenharia rende mais nas funcionalidades pelas quais os seus clientes pagam do que no encanamento dos webhooks.
  • Você precisa de confiabilidade em produção rapidamente. Construir uma infraestrutura de webhooks de nível produção leva de 6 semanas a 6 meses. Uma solução gerenciada como o Hookdeck Event Gateway coloca você em produção em 30 minutos, com 99,999% de uptime.
  • Você precisa de observabilidade que não tem tempo de construir. Rastreamento visual de eventos, busca full-text, gestão automatizada de issues e integrações de alerta (Slack, PagerDuty, OpsGenie) são o mínimo para lidar com webhooks em produção — e meses de trabalho para construir por conta própria.
  • Você está escalando além do que o caseiro aguenta. Quando o seu volume de webhooks cresce 10x ou 100x, uma infraestrutura gerenciada escala automaticamente. A Churnkey escalou 100x na Hookdeck sem alterar o código da aplicação.
  • Você não quer manter isso. Cada atualização de software, patch de segurança e decisão de escala de uma infraestrutura caseira de webhooks recai sobre o seu time. Uma infraestrutura gerenciada elimina esse peso de manutenção por completo.

Como escolher uma solução de enfileiramento para os seus webhooks.

Comprar a infraestrutura de webhooks

Comprar uma solução de webhooks envolve adquirir ou assinar um serviço de nuvem ou um software instalado para lidar com os seus fluxos de webhooks. Diferentemente dos provedores de nuvem mencionados em uma das opções de construção acima, um serviço de nuvem de gestão de webhooks é projetado especificamente para lidar com webhooks.

Assim como fizemos na seção "construir", vamos ver os pontos que definem um time que deveria comprar uma solução de webhooks pronta.

  • A solução de webhooks é um facilitador para o seu negócio, e não o serviço/produto principal
  • Você precisa de uma ferramenta com bom custo-benefício porque trabalha com orçamento limitado
  • Você precisa fazer o deploy rápido
  • Você não tem o conhecimento técnico nem os profissionais para assumir e/ou manter a arquitetura da solução e os requisitos de escalabilidade

Se você enxerga a si e ao seu time em pelo menos dois desses cenários, é altamente recomendável comprar uma solução pronta para cuidar da ingestão e da distribuição dos seus webhooks.

Abaixo estão alguns dos fatores técnicos e de negócio que sustentam a compra de uma solução de webhooks.

  • Configuração: soluções compradas vêm com configurações em template, prontas para diferentes casos de uso — por exemplo, ajustes de rate limiting, de retry e de alertas. Essas configurações também podem ser customizadas conforme a sua preferência. Como esses templates foram amplamente testados, há pouquíssimo espaço para erros. Além disso, fazer mudanças de configuração é muito menos complicado do que em soluções feitas sob medida.
  • Onboarding de engenheiros: integrar novas pessoas de engenharia leva menos tempo do que em uma solução construída do zero. A documentação da solução comprada contém todas as informações necessárias e é a mesma para toda instalação. Além disso, quem já tem experiência prévia com a solução consegue começar imediatamente.
  • Time to market: há menos trabalho para colocar tudo no ar, porque não é preciso gastar tanto tempo construindo. Isso ajuda você a fazer o deploy rápido e começar a entregar os seus webhooks aos destinos de forma eficaz, enquanto usa o tempo economizado em necessidades do negócio mais focadas no cliente.
  • Custo de engenharia: comprar uma solução de webhooks poupa você de todas as dores de cabeça financeiras de construir uma solução customizada. Também não há imprevistos do lado do desenvolvimento capazes de gerar variações no custo do projeto. Mesmo quando existe um custo inicial considerável, no caso de compras pontuais, é sempre um bom investimento no longo prazo. Produtos com modelos por assinatura também tornam o custo mais acessível.
  • Manutenção: todas as atividades de manutenção (complexidades arquiteturais, correções de bugs, atualizações, upgrades etc.) são exclusivamente responsabilidade do fornecedor da solução. Fornecedores também podem oferecer canais de suporte para você comunicar problemas e tê-los resolvidos o quanto antes.
  • Qualidade: uma solução de webhooks oferecida por uma marca com credibilidade passou por testes de garantia de qualidade. Isso assegura que todas as funcionalidades estão operando bem. A maioria dos fornecedores também oferece testes gratuitos para você experimentar o sistema e ver se ele atende às suas necessidades operacionais.

Hookdeck: uma opção de gestão de webhooks para quem vai comprar a infraestrutura

A Hookdeck é uma solução de webhooks baseada em nuvem para gerenciar os seus webhooks de forma confiável, que fica entre os seus provedores de webhook e a sua API, garantindo que todas as requisições sejam tratadas corretamente, sem descartar nenhuma. A Hookdeck também dá visibilidade total sobre todas as transações e eventos entre as requisições de webhook e a sua API. Os recursos dela são feitos para dar controle total sobre o fluxo dos seus webhooks, tirando dos seus ombros o peso de construir um sistema confiável, tolerante a falhas e escalável.

O Event Gateway cuida do recebimento de webhooks de entrada, com mais de 160 origens pré-configuradas, enfileiramento durável e observabilidade profunda. O Outpost cuida do envio de webhooks de saída, com entrega nativa para múltiplos destinos, OpenTelemetry e preço pay-as-you-go a US$ 10 por milhão de eventos. Juntos, formam a infraestrutura de webhooks gerenciada mais completa disponível.

Para entender melhor por que a Hookdeck deve ser a sua solução de webhooks preferida, vamos ver o que ela oferece de acordo com os fatores que discutimos até aqui.

Configuração e controle

A Hookdeck não é um serviço HTTP que você está tentando adaptar para webhooks; ela foi feita para webhooks. Por isso vem com recursos que dão controle total sobre como os seus webhooks são transmitidos da origem ao destino.

Alguns desses recursos incluem:

  • Refazer a entrega de um webhook que falhou
  • Controlar a taxa com que os webhooks são entregues aos destinos
  • Rotear webhooks para múltiplos destinos e com base em condições
  • Transformar o payload do webhook antes que ele chegue ao destino
  • Pausar o fluxo de webhooks da origem ao destino

A solução também inclui opções de configuração para controlar como esses recursos se comportam. Por exemplo, você pode configurar os retries dos seus webhooks para acontecerem automaticamente em intervalos definidos ou manualmente.

A Hookdeck também traz um dashboard intuitivo que dá visibilidade completa das atividades dos seus webhooks. Você pode acompanhar timestamps, ver payload e headers, detectar erros, ler mensagens de erro e consultar o histórico de eventos de webhook.

Custo e time to market

Uma conexão entre uma origem de webhook e o seu destino pode ser configurada na Hookdeck em menos de 30 segundos (sim, segundos). Com a conexão pronta, você já começa a entregar webhooks com todos os controles e a confiabilidade que a Hookdeck oferece. Ou seja, se os webhooks são críticos para as operações do seu negócio, leva literalmente segundos para colocá-los para rodar com eficiência.

A Hookdeck tem um plano gratuito que oferece até 100 mil requisições por mês, com três dias de retenção dos dados dos seus webhooks. A partir de US$ 39/mês, você pode entregar até um milhão de webhooks e manter os dados por até uma semana.

Manutenibilidade e segurança

Com a Hookdeck, você não precisa se preocupar com patches de software, upgrades de servidor, atualizações de funcionalidades e por aí vai. O time da Hookdeck abstrai tudo isso para a sua tranquilidade.

Também ficamos atentos à segurança e publicamos um checklist de segurança que está entre os principais artigos sobre segurança de webhooks no Google. Entender as vulnerabilidades de segurança em webhooks e as estratégias de autenticação é fundamental. Isso mostra o quanto levamos a sério a segurança dos seus webhooks, para que você possa focar em outros aspectos importantes do seu negócio.

Interoperabilidade

A Hookdeck foi desenhada para ser agnóstica em relação a plataforma e tecnologia. Isso permite conectar qualquer provedor a qualquer destino. Seja para conectar os seus webhooks a uma API própria ou a uma aplicação SaaS como o Discord, a Hookdeck torna o processo tranquilo.

Confira os nossos guias de plataformas para uma lista completa de artigos que ajudam você a começar rapidamente com serviços como Shopify, Stripe, GitHub e CircleCI.

Onboarding e continuidade

A Hookdeck tem uma curva de aprendizado suave e permite configurar uma conexão em questão de segundos. Isso torna o conhecimento facilmente transferível. Mesmo que alguém que nunca ouviu falar da Hookdeck entre no seu time, temos documentação suficiente para transformar essa pessoa em especialista em Hookdeck até o fim do primeiro dia.

A documentação também é dividida em seções, como listado abaixo, para ajudar as pessoas de engenharia a encontrar rapidamente qualquer informação:

Conclusão

Neste artigo, vimos os requisitos da nossa solução de webhooks e discutimos os cenários que favorecem construí-la do zero ou comprar uma pronta. Também analisamos os benefícios de cada abordagem e as suas opções.

Para concluir, use isto como regra ao decidir: se a solução de webhooks é o produto que você de fato vende ou a funcionalidade central, e você tem requisitos de funcionalidade muito específicos, tempo de desenvolvimento e os profissionais para assumir o projeto, então construir a solução se justifica.

Mas se os webhooks são apenas um facilitador para o seu negócio, você está com orçamento apertado e precisa de uma ferramenta com bom custo-benefício que também te ajude a cumprir o cronograma com um deploy rápido, ou se você não tem o conhecimento técnico para encarar projetos arquiteturais tão complexos, então é altamente recomendável comprar uma solução pronta como a Hookdeck.

Bom código!

FAQs

Quando um time deve comprar infraestrutura de webhooks em vez de construir?

Compre quando os webhooks viabilizam o seu negócio, mas não são o seu produto principal. Se você precisa de confiabilidade em produção rapidamente, não tem um time de plataforma dedicado ou prefere gastar tempo de engenharia em funcionalidades de produto em vez de manutenção de infraestrutura, uma solução gerenciada como a Hookdeck coloca você em produção em minutos, não em meses.

Quais são os custos ocultos de construir a própria infraestrutura de webhooks?

Além do desenvolvimento inicial (normalmente de semanas a meses), uma infraestrutura de webhooks caseira exige manutenção contínua de lógica de retry, gestão de filas, monitoramento, alertas e escala. Cada novo provedor de webhook significa nova lógica de verificação e novos casos de borda. Com o tempo, o peso operacional cresce: depurar falhas sem observabilidade, lidar com indisponibilidades e escalar para picos de tráfego consomem tempo de engenharia que poderia ir para o produto.

Quais recursos mais importam em uma infraestrutura de webhooks gerenciada?

O essencial é: enfileiramento durável (para você nunca perder eventos), retries automáticos com estratégias configuráveis, transformação e filtragem de payload, observabilidade ponta a ponta com rastreamento de eventos, alertas para falhas de entrega e suporte a múltiplos provedores de webhook sem código de integração customizado. Verificação de origem pré-configurada para os principais provedores reduz muito o tempo de configuração.