13 de agosto de 2026
"Enviado" não é "entregue": o número de teste que mentia
A API aceitou, devolveu identificador e registrou sucesso. A mensagem nunca chegou. Por que o resultado de um envio assíncrono não cabe no retorno da chamada.
Blog
Tecnologia, produto e o ecossistema — direto do time.
13 de agosto de 2026
A API aceitou, devolveu identificador e registrou sucesso. A mensagem nunca chegou. Por que o resultado de um envio assíncrono não cabe no retorno da chamada.
12 de agosto de 2026
Em um padrão o prefixo do código significa alguma coisa; no outro, significa nada. Tratar os dois igual faz uma regra aprovar o item errado sem acusar nenhum erro.
11 de agosto de 2026
Um watchdog alheio derrubava nosso ERP a cada quatro minutos. A causa não era bug nosso — era compartilhar o mesmo supervisor com dezenas de outros processos.
4 de agosto de 2026
Resposta de erro não entra no cache de dados. Consequência: o conteúdo removido continuava sendo servido do cache velho para sempre. A correção foi trocar o código de status.
28 de julho de 2026
Sanitizar na escrita ou na leitura? A resposta que evita XSS é ter exatamente um lugar onde o HTML nasce confiável — e nunca sanitizar de novo depois.
21 de julho de 2026
Uma rota de autoatendimento aceitando o campo de papel do usuário foi tudo que faltou para uma escalada de privilégio. O caso, a correção e a regra que ficou.
14 de julho de 2026
Assinatura sobre o corpo cru, 200 depois de autenticado, deduplicação por item e retry só em leitura. As quatro regras que fazem um receptor de webhook sobreviver à produção.
7 de julho de 2026
Duas vezes uma sessão boa foi destruída por um código de erro que parecia definitivo. A regra que sobrou: só desconecte quando o servidor disser que a sessão morreu.
30 de junho de 2026
Fazer a IA "pedir confirmação" é um aviso na tela. Fazer a sugestão ser incapaz de virar registro é arquitetura. A diferença entre as duas decide quem responde pelo erro.
23 de junho de 2026
Regra de arquitetura que vive só na cabeça do time é regra que já foi quebrada. Como transformamos "não escreva direto nessa tabela" num teste que roda em um segundo no CI.
16 de junho de 2026
Todo recurso opcional do ecossistema Orion nasce desligado e falha em silêncio quando não está configurado. Por que essa regra vale mais que qualquer bloco try/catch.
2 de junho de 2026
Dois canais de mensageria com regras incompatíveis atendidos pelas mesmas telas. O que variou, o que não podia variar e por que capacidade de provedor mora em código, não no banco.