Envelopes de webhook e entrega direta
O corpo HTTP padrão é um envelope JSON comtype: "notification", message_id, topic_crn, topic_name, subscription_id, message, timestamp e unsubscribe_url. Assunto e atributos aparecem quando informados. message permanece string mesmo contendo JSON.
Com raw_message_delivery: true, o corpo contém o conteúdo selecionado. Metadados ficam nos cabeçalhos X-Basaltic-Notification-Type, X-Basaltic-Message-Id, X-Basaltic-Subscription-Id, X-Basaltic-Topic-Crn, X-Basaltic-Unsubscribe-Url e X-Basaltic-Delivery-Attempt. O tipo continua application/json; escolha conteúdo adequado.
Filas sempre recebem o envelope e incluem identificadores da notificação nos atributos. Para FIFO, Notifications deriva o grupo do CRN do tópico e a deduplicação do ID da mensagem publicada. A ordenação FIFO vale dentro da fila; a distribuição assíncrona não garante ordem de publicação.
Verificar assinaturas de webhook
Toda solicitação de webhook assinada inclui:subscription_confirmation. Depois, o proprietário pode seguir confirm_url para consentir. Responder com sucesso à solicitação inicial apenas confirma seu recebimento.
Não armazene o segredo em logs. Leitura e rotação exigem permissões separadas. A rotação substitui a chave; coordene com o operador do destino. Descrever ou listar assinaturas nunca retorna o segredo.
Política de tentativas
A assinatura substitui o tópico por campo. Valores não especificados usam os padrões da plataforma. A espera dobra entre tentativas e inclui variação aleatória; são limites e padrões, não horários exatos. Quando ambos os atrasos são informados, o máximo não pode ser menor que o mínimo.
Em webhooks, HTTP
2xx significa sucesso. Timeouts, falhas de conexão, HTTP 408, 429 e 5xx podem gerar novas tentativas. Outros 4xx e todos os 3xx são definitivos; não há redirecionamento. Um destino que resolve para endereço privado bloqueado também falha definitivamente. Sucesso HTTP não prova conclusão da operação de negócio.
Filas de mensagens não entregues
Definaredrive_policy.dead_letter_queue na assinatura para guardar um envelope após falha definitiva. A fila pode ser padrão ou FIFO na mesma conta e região. Configurá-la exige queue:SendMessage.
O envelope inclui a notificação original, IDs de assinatura e entrega, tentativas, horário e último erro. O registro continua com falha após redirecionar. Destinos cheios, excluídos ou indisponíveis podem impedir o armazenamento; monitore as falhas e a fila, sem tratá-la como segunda garantia de entrega.
Isso trata falhas ao entregar ao destino. Para um consumidor que recebe mas não processa uma mensagem já enfileirada, configure a política de redirecionamento da fila de destino.
Diagnosticar uma notificação ausente
- Confirme a aceitação da publicação e inspecione a distribuição.
- Verifique se a assinatura está confirmada.
- Compare os atributos com toda a política de filtro.
- Localize a entrega e examine tentativas e último erro.
- Em webhooks, verifique URL, assinatura e status HTTP.
- Em filas, verifique disponibilidade, chave de criptografia e concessões dos consumidores.

