Loading...
Loading...
Build resilient, long-running, multi-step applications with AWS Lambda durable functions with automatic state persistence, retry logic, and orchestration for long-running executions. Covers the critical replay model, step operations, wait/callback patterns, error handling with saga pattern, testing with LocalDurableTestRunner. Triggers on phrases like: lambda durable functions, workflow orchestration, state machines, retry/checkpoint patterns, long-running stateful Lambda functions, saga pattern, human-in-the-loop callbacks, and reliable serverless applications.
npx skill4agent add awslabs/agent-plugins aws-lambda-durable-functionsaws --version
aws sts get-caller-identitynode --versionpython --versionsam --versioncdk --versionnpm install @aws/durable-execution-sdk-js
npm install --save-dev @aws/durable-execution-sdk-js-testingpip install aws-durable-execution-sdk-python
pip install aws-durable-execution-sdk-python-testingimport { withDurableExecution, DurableContext } from '@aws/durable-execution-sdk-js';
export const handler = withDurableExecution(async (event, context: DurableContext) => {
const result = await context.step('process', async () => processData(event));
return result;
});from aws_durable_execution_sdk_python import durable_execution, DurableContext
@durable_execution
def handler(event: dict, context: DurableContext) -> dict:
result = context.step(lambda _: process_data(event), name='process')
return resultrunInChildContextcontext.logger@durable_stepcontext.step(my_step(args))context.step(lambda _: ..., name='...')context.wait(duration=Duration.from_seconds(n), name='...')ExecutionErrorInvocationErrorCallbackErrorDurableFunctionTestRunnerrun(input=...)$LATEST# Valid
aws lambda invoke --function-name my-function:1 output.json
aws lambda invoke --function-name my-function:prod output.json
# Invalid - will fail
aws lambda invoke --function-name my-function output.jsonAWSLambdaBasicDurableExecutionRolePolicylambda:CheckpointDurableExecutionlambda:GetDurableExecutionStatelambda:InvokeFunctionlambda:SendDurableExecutionCallbackSuccesslambda:SendDurableExecutionCallbackFailureDate.now()Math.random()context.step()context.wait()context.invoke()context.runInChildContext()context.loggerLocalDurableTestRunner--allow-write.mcp.json--allow-sensitive-data-access.mcp.json