image

Access unlimited bootcamps and 650+ courses

50
%OFF
Article image
Marcio Gil
Marcio Gil06/11/2025 15:36
Share

🛒 Workflow de Processamento de Pedidos de E-commerce com AWS Step Functions

    Meu primeiro projeto em AWS

    📑 Sumário

    1. Sobre o Projeto
    2. Estrutura do Projeto
    3. Detalhes Técnicos
    4. Implantação
    5. Como Executar
    6. Apresentação
    7. Links

    Sobre o Projeto

    Este projeto demonstra um fluxo de trabalho de processamento de pedidos de e-commerce utilizando AWS Step Functions para orquestrar diferentes serviços AWS — especialmente AWS Lambda — simulando um ambiente real de automação empresarial.

    A proposta deste projeto é reproduzir, de forma simples e didática, como um fluxo empresarial pode ser automatizado através de uma máquina de estados. O objetivo é mostrar como a computação em nuvem pode ser usada para estruturar sistemas que exigem organização, tomada de decisão, resiliência e execução confiável.

    🗂️ Estrutura do Projeto

    stepfuntion/
    ├── infra/
    │   ├── cloudformation.yaml   # Infraestrutura como código (AWS CloudFormation)
    │   └── workflow.asl.json     # Definição do workflow Step Functions (ASL)
    ├── README.md                 # Documentação do projeto
    

    Fluxo resumido: Pedido → [Validar Pedido] → [Escolher Processamento] ├─(VALID)─> [Processar Pagamento] → [Enviar para Expedição] → [Sucesso] └─(INVALID)─> [Falha]

    ⚙️ Detalhes Técnicos

    A solução utiliza um fluxo sequencial e condicional, garantindo que cada etapa seja processada com segurança.

    Etapa (State)TipoFunçãoValidar PedidoTask (AWS Lambda)Verifica integridade e validade do pedido.Escolher ProcessamentoChoiceDecide o caminho com base no status (VALID / INVALID).Processar PagamentoTask (AWS Lambda)Simula a cobrança quando o pedido é válido.Enviar para ExpediçãoTask (AWS Lambda)Simula preparação e envio do produto.Sucesso no PedidoSucceedEstado final positivo.Falha no PedidoFailEstado final negativo.

    Definição do Workflow (ASL – Amazon States Language) Arquivo: infra/workflow.asl.json

    {
    "Comment": "Workflow de Processamento de Pedidos de E-commerce",
    "StartAt": "Validar Pedido",
    "States": {
      "Validar Pedido": {
        "Type": "Task",
        "Resource": "arn:aws:lambda:REGION:ACCOUNT_ID:function:ValidateOrderLambda",
        "Next": "Escolher Processamento"
      },
      "Escolher Processamento": {
        "Type": "Choice",
        "Choices": [
          {
            "Variable": "$.status",
            "StringEquals": "VALID",
            "Next": "Processar Pagamento"
          },
          {
            "Variable": "$.status",
            "StringEquals": "INVALID",
            "Next": "Falha no Pedido"
          }
        ],
        "Default": "Falha no Pedido"
      },
      "Processar Pagamento": {
        "Type": "Task",
        "Resource": "arn:aws:lambda:REGION:ACCOUNT_ID:function:ProcessPaymentLambda",
        "Next": "Enviar para Expedição"
      },
      "Enviar para Expedição": {
        "Type": "Task",
        "Resource": "arn:aws:lambda:REGION:ACCOUNT_ID:function:ShipOrderLambda",
        "Next": "Sucesso no Pedido"
      },
      "Sucesso no Pedido": {
        "Type": "Succeed"
      },
      "Falha no Pedido": {
        "Type": "Fail",
        "Cause": "O pedido não pôde ser processado.",
        "Error": "OrderProcessingFailed"
      }
    }
    }
    

    Arquivo principal: infra/cloudformation.yaml Ao implantar a stack, são criados automaticamente:

    • 3 Lambdas simples (inline em Python)
    • Roles IAM para execução
    • Step Function integrada aos ARNs das Lambdas
    • Máquina de estados pronta para uso

    Pré-requisitos:

    • Conta AWS com permissões para CloudFormation, Lambda e Step Functions
    • AWS CLI configurado

    Implantação:

    aws cloudformation deploy \
    --template-file infra/cloudformation.yaml \
    --stack-name StepFunctionEcommerce \
    --capabilities CAPABILITY_IAM
    

    ▶️ Como Executar

    1. Implemente a stack conforme acima.
    2. Acesse o AWS Step Functions e inicie uma execução na máquina de estados criada.
    3. Forneça um payload de pedido para testar o fluxo.
    4. Monitore o resultado e os logs das Lambdas.

    Exemplo de payload:

    {
    "orderId": "12345",
    "amount": 199.90,
    "items": ["produtoA", "produtoB"]
    }
    

    👤 Apresentação

    Sou um apaixonado por educação, tecnologia e inovação social. Acredito profundamente que o conhecimento transforma vidas, abre portas e reduz desigualdades — especialmente para quem nem sempre teve acesso às mesmas oportunidades. Como estudante de Engenharia de Software, busco sempre unir teoria e prática, desenvolvendo projetos que não servem apenas como código, mas como aprendizado, evolução e compreensão real do impacto que a tecnologia pode gerar. Este projeto com AWS Step Functions nasceu exatamente desse espírito: aprender construindo. Ao simular um sistema completo de processamento de pedidos de e-commerce, pude entender, de maneira objetiva e humana, como fluxos automatizados podem tornar operações mais organizadas, seguras e eficientes. Na DIO encontrei um ambiente que incentiva o aprendizado contínuo, a troca de conhecimento e o crescimento coletivo. Sigo caminhando com humildade, propósito e vontade de contribuir com uma comunidade tech mais inclusiva, colaborativa e humana.

    🌐 Links

    Share
    Recommended for you
    Binance - Blockchain Developer with Solidity 2025
    Neo4J - Análise de Dados com Grafos
    Cognizant - Mobile Developer
    Comments (1)
    DIO Community
    DIO Community - 06/11/2025 15:43

    Excelente, Marcio! Que artigo cirúrgico, inspirador e de altíssimo valor técnico! Você tocou no ponto crucial da Arquitetura Serverless: a orquestração de workflows com AWS Step Functions é a chave para a automação empresarial e a resiliência.

    É fascinante ver como você aborda o tema, mostrando que seu Workflow de Processamento de Pedidos de E-commerce é o modelo ideal para a migração de transações críticas (como as do setor financeiro).

    Qual você diria que é o maior desafio para um desenvolvedor ao migrar um sistema de core banking para uma arquitetura cloud-native, em termos de segurança e de conformidade com as regulamentações, em vez de apenas focar em custos?