Skip to content

Add AWS Lambda worker support - #1546

Draft
eamsden wants to merge 2 commits into
mainfrom
eamsden/aws-lambda-fresh
Draft

Add AWS Lambda worker support#1546
eamsden wants to merge 2 commits into
mainfrom
eamsden/aws-lambda-fresh

Conversation

@eamsden

@eamsden eamsden commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

What was changed

  • Added the experimental temporalio-sdk-aws-lambda integration crate.
  • Added a reusable Lambda worker builder that creates a fresh Temporal client and Worker for each invocation.
  • Added Lambda-oriented slot, poller, cache, eager Activity, versioning, and graceful-shutdown defaults, while allowing an explicit custom Worker tuner.
  • Added client configuration loading from environment variables and Lambda-local temporal.toml files.
  • Added absolute-deadline shutdown handling, per-invocation Worker identity, ordered shutdown hooks, tests, documentation, and changelog entries.
  • Added optional Lambda OpenTelemetry setup for OTLP metrics and existing SDK spans, with ADOT-compatible endpoint and service-name defaults, AWS X-Ray-compatible trace IDs, and deadline-bounded per-invocation flushing.

Why?

AWS Lambda invocations have a bounded execution window and need time reserved for graceful Worker shutdown, telemetry export, and final cleanup. This adapter centralizes those host-specific lifecycle concerns and applies the constrained defaults used by the other Temporal SDK Lambda integrations. A general Rust SDK OpenTelemetry plugin, including cross-process trace-context propagation, is intentionally outside this PR.

Checklist

  1. Closes: N/A

  2. How was this tested:

  • cargo test -p temporalio-sdk-aws-lambda
  • cargo test -p temporalio-sdk-aws-lambda --features otel
  • cargo lint
  • cargo test-lint
  • cargo +nightly fmt --check
  • RUSTDOCFLAGS=-Dwarnings cargo doc -p temporalio-sdk-aws-lambda --features temporalio-sdk-aws-lambda/otel --no-deps
  • git diff --check

An AWS Runtime Interface Emulator deployment smoke test remains as follow-up work.

  1. Any docs updates needed?

The new crate includes a README covering setup, ADOT configuration, and custom-runtime guidance. Broader docs.temporal.io coverage and a deployable sample can follow once the experimental API is validated.

@eamsden
eamsden force-pushed the eamsden/aws-lambda-fresh branch from 7e40fa0 to dfc6015 Compare August 28, 2026 23:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant