Step Functions Express Workflows: Orchestrate Lambda at 100K Events Per Second

Step Functions Express Workflows: Orchestrate Lambda at 100K Events Per Second

Step Functions Standard Workflows cost $0.025 per 1,000 state transitions. At 10 million events per day with 5 steps each, that is $1,250 per day. Express Workflows cost $0.000001 per transition — the same workload costs $0.05 per day. Express Workflows support 100,000 executions per second, run up to 5 minutes, and replace the “glue Lambdas” most teams write to chain AWS services together.

TL;DR: Express Workflows: 100K/sec, 5 min max, $0.000001/transition, at-least-once semantics, CloudWatch Logs only. Standard Workflows: 2K/sec, 1 year max, $0.025/1K transitions, exactly-once, full execution history. Use Express for high-volume event processing, Standard for long-running critical workflows.

Express Workflow SAM template — event processing pipeline

Resources:
  EventPipeline:
    Type: AWS::Serverless::StateMachine
    Properties:
      Type: EXPRESS
      Definition:
        Comment: High-volume event processing
        StartAt: ValidateEvent
        States:
          ValidateEvent:
            Type: Task
            Resource: !GetAtt ValidateFn.Arn
            Retry:
              - ErrorEquals: [States.TaskFailed]
                MaxAttempts: 2
                IntervalSeconds: 1
            Catch:
              - ErrorEquals: [ValidationError]
                Next: HandleInvalid
            Next: RouteEvent

          RouteEvent:
            Type: Choice
            Choices:
              - Variable: "$.type"
                StringEquals: ORDER
                Next: ProcessOrder
              - Variable: "$.type"
                StringEquals: PAYMENT
                Next: ProcessPayment
            Default: ProcessGeneric

          ProcessOrder:
            Type: Task
            Resource: !GetAtt OrderFn.Arn
            End: true

          ProcessPayment:
            Type: Task
            Resource: !GetAtt PaymentFn.Arn
            End: true

          HandleInvalid:
            Type: Task
            Resource: !GetAtt DLQFn.Arn
            End: true

      Logging:
        Level: ERROR
        IncludeExecutionData: false
        Destinations:
          - CloudWatchLogsLogGroup:
              LogGroupArn: !GetAtt Logs.Arn

Triggering Express Workflows synchronously and asynchronously

// Synchronous — wait for result
import { SFNClient, StartSyncExecutionCommand } from "@aws-sdk/client-sfn";
const sfn = new SFNClient({});

export const handler = async (event) => {
  const { status, output, error } = await sfn.send(new StartSyncExecutionCommand({
    stateMachineArn: process.env.STATE_MACHINE_ARN,
    input: JSON.stringify(event),
  }));
  if (status === "FAILED") throw new Error(error);
  return JSON.parse(output);
};

// Asynchronous at high volume:
// SQS → EventBridge Pipe → Express Workflow (parallel fan-out per message)

Parallel state — simultaneous Lambda invocations

EnrichInParallel:
  Type: Parallel
  Branches:
    - StartAt: FetchUser
      States:
        FetchUser:
          Type: Task
          Resource: !GetAtt UserFn.Arn
          End: true
    - StartAt: FetchProduct
      States:
        FetchProduct:
          Type: Task
          Resource: !GetAtt ProductFn.Arn
          End: true
    - StartAt: CheckInventory
      States:
        CheckInventory:
          Type: Task
          Resource: !GetAtt InventoryFn.Arn
          End: true
  # All 3 run simultaneously — total time = max(branch durations)
  Next: MergeResults
  • ✅ Express for high-volume event processing, ETL, microservice orchestration under 5 min
  • ✅ Standard for long-running workflows, exactly-once requirements, human approval
  • ✅ Log only ERROR level for Express Workflows — full logging at volume is expensive
  • ✅ Use Parallel state instead of fan-out Lambdas
  • ❌ Never use Standard Workflows for high-volume event processing at scale
  • ❌ Express Workflows do not appear in the Step Functions execution history console

Express Workflows pair naturally with Lambda Extensions for tracing across workflow steps. For the infrastructure connecting SQS to Express Workflows, EventBridge Pipes handle fan-out automatically. Monitor step durations using CloudWatch Insights on the Express Workflow log group. Official reference: Express Workflows documentation.

Master AWS Lambda

AWS Solutions Architect Course on Udemy — The most comprehensive AWS course covering Lambda, serverless patterns, and production architecture.

AWS Certified Solutions Architect Study Guide — Deep Lambda chapter covering cold starts, VPC, layers, and SnapStart.

Sponsored links. We may earn a commission at no extra cost to you.


Discover more from CheatCoders

Subscribe to get the latest posts sent to your email.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply