Trabalho com software há mais de 15 anos. Esse é o primeiro texto que resolvo escrever sobre o trabalho. Escolhi esse tema porque foi um problema pequeno, real, que me custou tempo mais de uma vez até eu parar e resolver direito.
Vale um adendo rápido: isso aqui não é tracing distribuído nem observabilidade para múltiplos serviços. É uma solução pontual para um problema específico: correlacionar logs dentro da execução de um Step Function. Se o seu cenário for outro, o problema muda de forma. O que importa aqui é o raciocínio, não a receita.
Contexto rápido pra quem não trabalha com serverless: o AWS Step Functions é um serviço de orquestração. Você desenha um workflow como uma máquina de estados (JSON), e cada estado geralmente aciona uma AWS Lambda (uma função que roda sob demanda, sem servidor pra gerenciar). No meu caso, um pedido dispara uma execução da state machine, que vai passando por várias Lambdas em sequência: algumas fazem validação, outras chamam serviços externos, uma espera resposta de um callback antes de continuar.
A solução acabou sendo mais simples do que parece: um campo que o Step Functions já oferecia de graça, e que eu simplesmente não estava usando.
Um pedido foi processado há 120 dias. O cliente liga: "Vocês receberam minha solicitação? Nunca tive retorno."






