feat: limit in-flight operations in map/parallel max_concurrency now bounds in-flight branches via a coordinator loop, the completion decision is recorded in an SDK-owned summary envelope and obeyed on replay, and completion config bounds are validated before the operation starts. Branch threads abandoned by early completion are joined at invocation end, so no SDK-created thread outlives its invocation. BREAKING CHANGE: max_concurrency=0 and min_successful=0 now raise ValidationError (previously unlimited / all-items). min_successful greater than the item count now raises ValidationError. BatchResult omits never-started branches. Large-result summary payloads use the SDK envelope format; custom summary_generator output is stored under the summary key instead of replacing the payload. The internal MapSummaryGenerator and ParallelSummaryGenerator classes are removed; the envelope supersedes them. CompletionConfig.all_completed() now tolerates all failures instead of failing fast.
feat: limit in-flight operations in map/parallel
max_concurrency now bounds in-flight branches via a coordinator loop, the completion decision is recorded in an SDK-owned summary envelope and obeyed on replay, and completion config bounds are validated before the operation starts. Branch threads abandoned by early completion are joined at invocation end, so no SDK-created thread outlives its invocation.
BREAKING CHANGE: max_concurrency=0 and min_successful=0 now raise ValidationError (previously unlimited / all-items). min_successful greater than the item count now raises ValidationError. BatchResult omits never-started branches. Large-result summary payloads use the SDK envelope format; custom summary_generator output is stored under the summary key instead of replacing the payload. The internal MapSummaryGenerator and ParallelSummaryGenerator classes are removed; the envelope supersedes them. CompletionConfig.all_completed() now tolerates all failures instead of failing fast.
Build reliable, long-running AWS Lambda workflows with checkpointed steps, waits, callbacks, and parallel execution.
context.logger
aws-durable-execution-sdk-python
aws-durable-execution-sdk-python-testing
Install the execution SDK:
pip install aws-durable-execution-sdk-python
Create a durable Lambda handler:
from aws_durable_execution_sdk_python import ( DurableContext, StepContext, durable_execution, durable_step, ) from aws_durable_execution_sdk_python.config import Duration @durable_step def validate_order(step_ctx: StepContext, order_id: str) -> dict: step_ctx.logger.info("Validating order", extra={"order_id": order_id}) return {"order_id": order_id, "valid": True} @durable_execution def handler(event: dict, context: DurableContext) -> dict: order_id = event["order_id"] context.logger.info("Starting workflow", extra={"order_id": order_id}) validation = context.step(validate_order(order_id), name="validate_order") if not validation["valid"]: return {"status": "rejected", "order_id": order_id} # simulate approval (real world: use wait_for_callback) context.wait(duration=Duration.from_seconds(5), name="await_confirmation") return {"status": "approved", "order_id": order_id}
The complete documentation for the AWS Durable Execution SDK for Python lives on the AWS Documentation site:
See the LICENSE file for our project’s licensing.
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
AWS Durable Execution SDK for Python
Build reliable, long-running AWS Lambda workflows with checkpointed steps, waits, callbacks, and parallel execution.
✨ Key Features
context.loggerfor structured, de-duplicated logs📦 Packages
aws-durable-execution-sdk-pythonaws-durable-execution-sdk-python-testing🚀 Quick Start
Install the execution SDK:
Create a durable Lambda handler:
📚 Documentation
The complete documentation for the AWS Durable Execution SDK for Python lives on the AWS Documentation site:
💬 Feedback & Support
📄 License
See the LICENSE file for our project’s licensing.