Funções duráveis do Lambda
As funções duráveis do Lambda permitem que sejam criadas aplicações resilientes de várias etapas e fluxos de trabalho de IA que podem ser executadas por até um ano, mantendo um progresso confiável apesar das interrupções. Quando uma função durável é executada, esse ciclo de vida completo é chamado de execução durável, que usa pontos de verificação para monitorar o progresso e se recuperar automaticamente de falhas por meio de reprodução, reexecutando desde o início e ignorando o trabalho concluído.
Em cada função, você usa operações duráveis como blocos de construção fundamentais. As etapas executam a lógica de negócios com novas tentativas e rastreamento de progresso integrados, enquanto as esperas suspendem a execução sem incorrer em custos de computação, tornando-as ideais para processos de longa execução, como fluxos de trabalho com humanos no loop ou sondagens de dependências externas. Se você estiver processando pedidos, coordenando microsserviços ou orquestrando aplicações de IA agêntica, as funções duráveis mantêm o estado automaticamente e se recuperam de falhas enquanto você escreve código em linguagens de programação familiares.
Benefícios principais
Escreva código resiliente naturalmente: com construções de programação familiares, você escreve código que lida com falhas automaticamente. Pontos de verificação integrados, novas tentativas transparentes e recuperação automática significam que sua lógica de negócios permanece limpa e focada.
Pague somente pelo que você usar: durante as operações de espera, sua função é suspensa sem incorrer em cobranças computacionais. Para fluxos de trabalho de longa duração que esperem horas ou dias, você pagará somente pelo tempo real de processamento, e não pela espera ociosa.
Simplicidade operacional: com o modelo de tecnologia sem servidor do Lambda, você obtém escalabilidade automática, incluindo escala até zero, sem infraestrutura de gerenciamento. Funções duráveis lidam com gerenciamento de estado, lógica de novas tentativas e recuperação de falhas automaticamente, reduzindo a sobrecarga operacional.
Como funciona
Nos bastidores, as funções duráveis são funções do Lambda regulares que usam um mecanismo de ponto de verificação/reprodução para monitorar o progresso e apoiar operações de longa duração por meio de pontos de suspensão definidos pelo usuário, comumente chamados de execução durável. Quando uma função durável é retomada a partir de um ponto de espera ou de uma interrupção, como novas tentativas, o sistema executa a reprodução. Durante a reprodução, seu código é executado desde o início, mas ignora os pontos de verificação concluídos, usando os resultados armazenados em vez de reexecutar as operações concluídas. Esse mecanismo de reprodução garante consistência e permite execuções de longa duração.
Depois que sua função é retomada após uma pausa ou interrupção, o sistema executa a reprodução. Durante a reprodução, seu código é executado desde o início, mas ignora os pontos de verificação concluídos, usando os resultados armazenados em vez de reexecutar as operações concluídas. Esse mecanismo de reprodução garante consistência e permite execuções de longa duração.
Para aproveitar esse mecanismo de ponto de verificação e reprodução em suas aplicações, o Lambda fornece um SDK de execução durável. O SDK elimina a complexidade do gerenciamento de pontos de verificação e reprodução, expondo primitivas simples chamadas operações duráveis que você usa em seu código. O SDK está disponível para JavaScript, TypeScript e Python, integrando-se perfeitamente ao seu fluxo de trabalho de desenvolvimento Lambda existente.
Com o SDK, você empacota seu manipulador de eventos do Lambda, que então fornece um DurableContext junto ao seu evento. Esse contexto dá acesso a operações duráveis, como etapas e esperas. Você escreve a lógica da sua função como um código sequencial normal, mas, em vez de chamar serviços diretamente, agrupa essas chamadas em etapas para verificação automática e novas tentativas. Quando é necessário pausar a execução, você adiciona esperas que suspendem sua função sem incorrer em cobranças. O SDK lida com toda a complexidade do gerenciamento de estados e da reprodução nos bastidores, para que seu código permaneça limpo e legível.
Quando usar as funções duráveis
Coordenação de curta duração: coordene pagamentos, inventário e envios em vários serviços com reversão automática em caso de falhas. Processe pedidos por meio de validação, autorização de pagamento, alocação de inventário e atendimento com conclusão garantida.
Processe pagamentos com confiança: crie fluxos de pagamento resilientes que mantenham o estado da transação em caso de falhas e lidem com novas tentativas automaticamente. Coordene a autorização em várias etapas, as verificações de fraudes e a liquidação entre provedores de pagamento com total auditabilidade em todas as etapas.
Crie fluxos de trabalho de IA confiáveis: crie fluxos de trabalho de IA em várias etapas que encadeiem chamadas de modelos, incorporem feedback humano e lidem com tarefas de longa duração de forma determinística durante falhas. Retome a execução automaticamente após a suspensão e pague apenas pelo tempo de execução ativo.
Organize o atendimento complexo de pedidos: coordene o processamento de pedidos em sistemas de inventário, pagamento, envio e notificação com resiliência integrada. Lide automaticamente com falhas parciais, preserve o estado do pedido apesar das interrupções e aguarde com eficiência por eventos externos sem consumir recursos computacionais.
Automatize fluxos de trabalho de negócios em várias etapas: crie fluxos de trabalho confiáveis para integração de funcionários, aprovações de empréstimos e processos de conformidade que abranjam dias ou semanas. Mantenha o estado do fluxo de trabalho em todas as aprovações humanas, integrações de sistemas e tarefas agendadas, ao mesmo tempo em que fornece visibilidade total do status e do histórico do processo.