Summary
We're excited to announce AWS Lambda durable function support in Powertools for AWS Lambda TypeScript. This allows you to leverage AWS Lambda's new durable execution capabilities while taking the advantage of features such as maintaining idempotency guarantees, making it easier to build reliable serverless workflows that span multiple invocations.
AWS Lambda durable functions allow you to simplify building multi-step applications and AI workflows. These functions automatically checkpoint progress, suspend execution for up to one year during long-running tasks, and recover from failures without the need to manage additional infrastructure.
Note
Lambda function handlers using MiddyJS or Class method decorators aren’t compatible with Durable Function handlers at this time.
Tracking issues: MiddyJS middyjs/middy#1531
Class Decorator #4832
This release also includes some bug fixes and a documentation improvement with the help of the community.
⭐ Congratulations to @jinxiao and @dwandro for their first PR merged in the project 🎉
Changes
- fix(logger): merged temp keys with same keys when appending to the logger (#4840) by @sdangol
- fix(idempotency): Update durableExecutionMode string (#4837) by @ConnorKirk
- feat(idempotency): Allow durable function to replay (#4834) by @ConnorKirk
- fix(event-handler): threshold limit for compression not respected when content-length not set (#4827) by @svozza
- feat(parser): fix DynamoDBStreamChangeRecordSchema.dynamodb type (#4817) by @benthorner
📜 Documentation updates
- chore(ci): bumped the layer verison from 41 to 42 (#4861) by @sdangol
- chore(deps-dev): bump markdownlint-cli2 from 0.19.1 to 0.20.0 (#4853) by @dependabot[bot]
- chore(deps): bump aws-cdk-lib from 2.228.0 to 2.232.1 in the aws-cdk group across 1 directory (#4855) by @dependabot[bot]
- chore(deps): bump the aws-sdk-v3 group across 1 directory with 42 updates (#4854) by @dependabot[bot]
- chore(deps): bump @types/node from 24.10.1 to 24.10.2 (#4856) by @dependabot[bot]
- chore(deps): bump urllib3 from 2.5.0 to 2.6.0 in /docs (#4850) by @dependabot[bot]
- chore(deps): bump esbuild from 0.27.0 to 0.27.1 (#4849) by @dependabot[bot]
- chore(deps): bump tsx from 4.20.6 to 4.21.0 (#4829) by @dependabot[bot]
- docs(parser): fixed a typo for the SqsEnvelope built-in envelope (#4826) by @sdangol
- fix: fix China region arn typo (#4820) by @jinxiao
- chore(deps): bump the aws-sdk-v3 group across 1 directory with 56 updates (#4811) by @dependabot[bot]
- chore(deps): bump the aws-cdk group across 1 directory with 3 updates (#4812) by @dependabot[bot]
- chore(ci): bumped the layer verison from 40 to 41 (#4800) by @sdangol
🔧 Maintenance
- chore(deps-dev): bump aws-sdk from 2.1692.0 to 2.1693.0 (#4857) by @dependabot[bot]
- chore(deps-dev): bump markdownlint-cli2 from 0.19.1 to 0.20.0 (#4853) by @dependabot[bot]
- chore(deps): bump aws-cdk-lib from 2.228.0 to 2.232.1 in the aws-cdk group across 1 directory (#4855) by @dependabot[bot]
- chore(deps): bump the aws-sdk-v3 group across 1 directory with 42 updates (#4854) by @dependabot[bot]
- chore(deps): bump @types/node from 24.10.1 to 24.10.2 (#4856) by @dependabot[bot]
- chore(deps): bump github/codeql-action from 4.31.6 to 4.31.7 (#4852) by @dependabot[bot]
- chore(deps): bump urllib3 from 2.5.0 to 2.6.0 in /docs (#4850) by @dependabot[bot]
- chore(deps): bump @aws/lambda-invoke-store from 0.2.1 to 0.2.2 (#4847) by @dependabot[bot]
- chore(deps): bump esbuild from 0.27.0 to 0.27.1 (#4849) by @dependabot[bot]
- chore(deps-dev): bump @valkey/valkey-glide from 2.2.0 to 2.2.1 (#4848) by @dependabot[bot]
- chore(deps): bump arktype from 2.1.27 to 2.1.28 (#4845) by @dependabot[bot]
- chore(deps-dev): bump the vitest group across 1 directory with 2 updates (#4844) by @dependabot[bot]
- chore(deps): bump actions/stale from 10.1.0 to 10.1.1 (#4843) by @dependabot[bot]
- chore(deps): bump actions/setup-node from 6.0.0 to 6.1.0 (#4842) by @dependabot[bot]
- chore(deps): bump actions/checkout from 6.0.0 to 6.0.1 (#4841) by @dependabot[bot]
- chore(deps): update package lock file for invoke store (#4836) by @svozza
- fix(deps): revert @aws/lambda-invoke-store to dependency (#4833) by @dwandro
- chore(deps): bump github/codeql-action from 4.31.5 to 4.31.6 (#4830) by @dependabot[bot]
- chore(deps): bump tsx from 4.20.6 to 4.21.0 (#4829) by @dependabot[bot]
- chore(deps-dev): bump typedoc from 0.28.14 to 0.28.15 in the typescript group across 1 directory (#4828) by @dependabot[bot]
- chore(deps-dev): bump @valkey/valkey-glide from 2.1.2 to 2.2.0 (#4825) by @dependabot[bot]
- chore(deps-dev): bump @biomejs/biome from 2.3.7 to 2.3.8 (#4824) by @dependabot[bot]
- chore(deps): bump vscode/devcontainers/javascript-node from
fd373e0to88852e0in /.devcontainer (#4823) by @dependabot[bot] - chore(deps-dev): bump the vitest group across 1 directory with 2 updates (#4818) by @dependabot[bot]
- chore(deps): bump aws-actions/configure-aws-credentials from 5.1.0 to 5.1.1 (#4814) by @dependabot[bot]
- chore(deps): bump actions/setup-python from 6.0.0 to 6.1.0 (#4815) by @dependabot[bot]
- chore(deps): bump valibot from 1.1.0 to 1.2.0 (#4816) by @dependabot[bot]
- chore(deps): bump the aws-sdk-v3 group across 1 directory with 56 updates (#4811) by @dependabot[bot]
- chore(deps): bump the aws-cdk group across 1 directory with 3 updates (#4812) by @dependabot[bot]
- chore(deps): bump github/codeql-action from 4.31.4 to 4.31.5 (#4813) by @dependabot[bot]
- chore(deps-dev): bump markdownlint-cli2 from 0.19.0 to 0.19.1 (#4810) by @dependabot[bot]
- chore(deps-dev): bump zod from 4.1.12 to 4.1.13 (#4809) by @dependabot[bot]
- chore(deps-dev): bump the vitest group across 1 directory with 2 updates (#4808) by @dependabot[bot]
- chore(event-handler): export types for event handler middleware (#4807) by @svozza
- chore(deps-dev): bump @biomejs/biome from 2.3.5 to 2.3.7 (#4791) by @dependabot[bot]
This release was made possible by the following contributors:
@ConnorKirk, @benthorner, @dependabot[bot], @dwandro, @github-actions[bot], @jinxiao, @sdangol, @svozza, dependabot[bot] and github-actions[bot]