

# Funções duráveis ou Step Functions
<a name="durable-step-functions"></a>

Tanto as funções duráveis do Lambda quanto o AWS Step Functions permitem a orquestração confiável do fluxo de trabalho com gerenciamento automático de estados e recuperação de falhas. Eles atendem a diferentes preferências do desenvolvedor e padrões arquitetônicos. As funções duráveis são otimizadas para o desenvolvimento de aplicativos no Lambda, enquanto o Step Functions é criado para orquestração de fluxo de trabalho entre serviços da AWS.

## Quando usar as funções duráveis
<a name="durable-sfn-when-durable"></a>

Use funções duráveis quando:
+ Sua equipe prefere linguagens de programação padrão e ferramentas de desenvolvimento conhecidas
+ A lógica do seu aplicativo está principalmente nas funções do Lambda
+ Você quer controle refinado sobre o estado de execução no código
+ Você está criando aplicativos centrados em Lambda com acoplamento forte entre fluxo de trabalho e lógica de negócios
+ Você quer iterar rapidamente sem alternar entre código e designers visuais/JSON

## Quando usar o Step Functions
<a name="durable-sfn-when-step"></a>

Use Step Functions quando:
+ Você precisa de uma representação visual do fluxo de trabalho para visibilidade entre equipes
+ Você está orquestrando vários serviços da AWS e quer integrações nativas sem código SDK personalizado
+ Você precisa de uma infraestrutura de manutenção zero (sem patches, atualizações de runtime)
+ As partes interessadas não técnicas precisar entender e validar a lógica do fluxo de trabalho

## Estrutura de decisão
<a name="durable-sfn-decision-framework"></a>

Use as seguintes perguntas para determinar qual o serviço mais adequado ao seu caso de uso:
+ **Qual é o seu foco principal?** Desenvolvimento de aplicativos em Lambda → funções duráveis. Orquestração do fluxo de trabalho na AWS → Step Functions.
+ **Qual é o seu modelo de programação preferencial?** Linguagens de programação padrão → funções duráveis. DSL baseado em gráficos ou designer visual → Step Functions.
+ **Quantos serviços da AWS estão envolvidos?** Principalmente Lambda → funções duráveis. Vários serviços da AWS → Step Functions.
+ **Quais ferramentas de desenvolvimento você usa?** Experiência de desenvolvedor Lambda, IDE com agente LLM, estruturas de teste de unidade específicas da linguagem de programação, AWS SAM, AWS CDK, AWS Toolkit → funções duráveis. Construtor de fluxo de trabalho visual, AWS CDK para modelar fluxos de trabalho → Step Functions.
+ **Quem gerencia a infraestrutura?** Quer flexibilidade no Lambda → funções duráveis. Quer gerenciamento completo e sem manutenção → Step Functions.

## Comparação de recursos
<a name="durable-sfn-comparison"></a>

A tabela a seguir compara os principais recursos entre o Step Functions e as funções duráveis do Lambda:


| Recurso | AWS Step Functions | Funções duráveis do Lambda | 
| --- | --- | --- | 
| Foco principal | Orquestração do fluxo de trabalho na AWS | Desenvolvimento de aplicações no Lambda | 
| Tipo de serviço | Serviço de fluxo de trabalho independente e dedicado | Execução no Lambda | 
| Modelo de programação | Baseado em gráficos, Amazon States Language DSL ou AWS CDK | Linguagens de programação padrão (JavaScript/TypeScript, Python) | 
| Ferramentas de desenvolvimento | Construtor visual na extensão IDE do Console/AWS Toolkit, AWS CDK | Lambda DX em agentes de IDE e LLM, estruturas de teste de unidade, AWS SAM, extensão IDE do AWS Toolkit | 
| Integrações | Mais de 220 serviços da AWS, 16 mil APIs | Extensão do modelo de programação orientada por eventos do Lambda (origens de eventos) | 
| Gerenciamento | Totalmente gerenciado, independente do runtime, sem manutenção (sem patches, atualizações de runtime) | Gerenciado no ambiente do Lambda | 
| Melhor para | Automação de processos de negócios e TI, processamento de dados, fluxos de trabalho de IA | Transações distribuídas, lógica de aplicação com estado, orquestração de funções, processamento de dados, fluxos de trabalho de IA | 

## Arquiteturas híbridas
<a name="durable-sfn-hybrid"></a>

Muitas aplicações se beneficiam do uso dos dois serviços. Um padrão comum é usar funções duráveis para lógica em nível de aplicação no Lambda, enquanto o Step Functions coordena fluxos de trabalho de alto nível em vários serviços da AWS além das funções do Lambda.

## Considerações sobre a migração
<a name="durable-sfn-migration"></a>

**Começando de maneira simples, evoluindo para algo complexo:** comece com funções duráveis para fluxos de trabalho centrados no Lambda. Adicione o Step Functions quando precisar de orquestração de vários serviços ou design visual de fluxo de trabalho.

**Usuários existentes do Step Functions:** mantenha o Step Functions para fluxos de trabalho estabelecidos entre serviços. Considere as funções duráveis para a nova lógica de aplicação do Lambda que precisa de confiabilidade.

## Recursos relacionados
<a name="durable-sfn-related"></a>
+ [Funções duráveis do Lambda](durable-functions.md)
+ [Orquestrar funções do Lambda com o Step Functions](with-step-functions.md)
+ [Conceitos básicos das funções duráveis](durable-getting-started.md)