Conceito e mecanismo
Uma mensagem recebida não é uma operação de negócio concluída. Se uma Lambda processa SQS standard, a aplicação deve suportar nova entrega do mesmo trabalho. Usa uma identidade estável da operação e um estado persistente que permita distinguir pendente, concluído e resultado incerto. Guardar apenas o ID da invocação não reconhece uma nova tentativa. Num lote, uma falha pode repetir também itens que já tiveram sucesso. Respostas parciais exigem configuração do event source mapping e um handler que devolva os identificadores das falhas segundo o contrato. A idempotência continua necessária porque reduzir retries não garante execução única.
Aplicação guiada
Numa integração bancária fictícia, um timeout após submeter uma instrução pode significar que o destino aceitou mas a resposta se perdeu. Consulta o estado ou usa o contrato idempotente suportado antes de reenviar. Para falhas transitórias, combina tentativas limitadas e backoff com o prazo global; o SDK pode já repetir chamadas. Um circuit breaker limita pressão sobre uma dependência degradada e testa recuperação de forma controlada. EventBridge permite encaminhar eventos por padrões: ensaia correspondências e não correspondências. Ao reutilizar um ambiente Lambda, mantém clientes SDK reutilizáveis, mas separa dados de utilizadores e pedidos para impedir contaminação entre invocações.
Num lote standard com A e C concluídas e B inválida, devolve apenas B como falha quando a resposta parcial está ativa. Uma exceção não tratada do handler continua a representar falha do lote.
Armadilhas comuns
Usar retries sem prazo; confirmar mensagens inválidas; assumir que FIFO elimina todos os efeitos duplicados; guardar estado de cliente numa variável global.
Tópicos relacionados: Dados, concorrência e paginação · Identidades e autorização por recurso
Separa entrega, execução e confirmação do efeito de negócio.
Referência: Lambda with SQS · DVA-C02; exam guide 2.1