Sobre o serviço
TraduzidoA maioria das integrações falha em silêncio. Um serviço dispara um evento, o receptor está reiniciando, ninguém tenta novamente, e você descobre que o cliente nunca recebeu uma confirmação. Eu construo a camada que torna essa troca chata e previsível: um ponto de entrada para eventos, uma fila atrás dele, roteamento para notificações e um log de entrega que responde à pergunta "chegou?" sem suposições.
O trabalho começa com o mapa de eventos, não com o código. Passamos pelo que realmente acontece dentro de seus sistemas e escolhemos o que merece uma reação: um novo pedido, um pagamento falhado, uma mudança de status, um documento assinado. Para cada um, anoto quem precisa saber sobre isso, com que rapidez e por qual canal. Metade do barulho futuro desaparece nesta etapa, porque até agora ninguém havia perguntado se um evento merecia uma mensagem.
Então, a mecânica. Um webhook de entrada sem verificação de assinatura não é aceito — caso contrário, qualquer um pode lhe enviar um evento, e um forjado custa muito mais do que um perdido. Eventos aceitos vão para uma fila e são tentados novamente com intervalos crescentes enquanto o lado remoto está indisponível. Repetições são normais aqui, então cada evento carrega uma chave, e uma segunda cópia da mesma chave não muda nada. Segredos e tokens são mantidos fora do código e nunca chegam ao log. As notificações em si carregam um link e um número e nada mais: dados pessoais e conteúdos de documentos não são colocados em um chat de trabalho que metade da empresa pode rolar.
O que o trabalho inclui:
— um mapa de eventos com uma razão para cada um;
— recebimento de webhook com verificações de assinatura e recusa de qualquer coisa não assinada;
— uma fila com tentativas e um backlog visível de eventos não processados;
— proteção contra o processamento do mesmo evento duas vezes;
— roteamento para e-mail e para o mensageiro da equipe, por evento e por destinatário;
— modelos de mensagens em linguagem simples, sem despejos de carga bruta;
— um log de entrega pesquisável por evento, com reenvio manual;
— monitoramento da fila que avisa quando o backlog para de ser drenado;
— um guia escrito curto para a equipe.
O trabalho começa com o mapa de eventos, não com o código. Passamos pelo que realmente acontece dentro de seus sistemas e escolhemos o que merece uma reação: um novo pedido, um pagamento falhado, uma mudança de status, um documento assinado. Para cada um, anoto quem precisa saber sobre isso, com que rapidez e por qual canal. Metade do barulho futuro desaparece nesta etapa, porque até agora ninguém havia perguntado se um evento merecia uma mensagem.
Então, a mecânica. Um webhook de entrada sem verificação de assinatura não é aceito — caso contrário, qualquer um pode lhe enviar um evento, e um forjado custa muito mais do que um perdido. Eventos aceitos vão para uma fila e são tentados novamente com intervalos crescentes enquanto o lado remoto está indisponível. Repetições são normais aqui, então cada evento carrega uma chave, e uma segunda cópia da mesma chave não muda nada. Segredos e tokens são mantidos fora do código e nunca chegam ao log. As notificações em si carregam um link e um número e nada mais: dados pessoais e conteúdos de documentos não são colocados em um chat de trabalho que metade da empresa pode rolar.
O que o trabalho inclui:
— um mapa de eventos com uma razão para cada um;
— recebimento de webhook com verificações de assinatura e recusa de qualquer coisa não assinada;
— uma fila com tentativas e um backlog visível de eventos não processados;
— proteção contra o processamento do mesmo evento duas vezes;
— roteamento para e-mail e para o mensageiro da equipe, por evento e por destinatário;
— modelos de mensagens em linguagem simples, sem despejos de carga bruta;
— um log de entrega pesquisável por evento, com reenvio manual;
— monitoramento da fila que avisa quando o backlog para de ser drenado;
— um guia escrito curto para a equipe.