Skip to content

Add Java SDK support to the AWS Lambda durable functions Kiro Power#110

Open
DeepaliTandale wants to merge 16 commits intoaws:mainfrom
DeepaliTandale:main
Open

Add Java SDK support to the AWS Lambda durable functions Kiro Power#110
DeepaliTandale wants to merge 16 commits intoaws:mainfrom
DeepaliTandale:main

Conversation

@DeepaliTandale
Copy link
Copy Markdown

@DeepaliTandale DeepaliTandale commented Apr 1, 2026

Description of changes:
Add Java SDK (aws-durable-execution-sdk-java) as a supported language in the Kiro Power, alongside the existing TypeScript and Python support. Java code snippets have been added inline to all existing steering files following the same pattern used for other languages.

Related
Java SDK repository: [https://github.com/aws/aws-durable-execution-sdk-java]
Maven Central: [https://central.sonatype.com/artifact/software.amazon.lambda.durable/aws-durable-execution-sdk-java]

Changes
Updated POWER.md with Java 17+ prerequisite, Maven dependency block (v1.0.0) with Maven Central link, Java basic handler pattern in Quick Reference, and a new "Java API Differences" section covering DurableHandler, typed steps, TypeToken, DurableFuture, callbacks, map, configuration, exceptions, testing, and logging. Updated Critical Rules and Validation Guidelines with Java-specific references. Added Java SDK repo to Resources.

Updated both README files (root and power) with Java SDK repository link.

Updated 10 steering files with inline Java code snippets:

getting-started.md : Basic handler, GenAI agentic loop, human-in-the-loop approval, saga pattern, project structure, Maven setup, development workflow, setup checklist

replay-model-rules.md : Java examples for all 4 replay rules (determinism, no nesting, closure mutations, side effects) with Java-specific APIs like UUID.randomUUID(), System.currentTimeMillis(), AtomicInteger, ctx.getLogger()

step-operations.md : Typed steps with ctx.step(), TypeToken for generics, stepAsync/DurableFuture, RetryStrategies, custom RetryDecision, AT_MOST_ONCE_PER_RETRY semantics, custom SerDes, StepFailedException/StepInterruptedException handling

wait-operations.md : Simple waits, waitAsync/DurableFuture, waitForCallback, createCallback with CallbackConfig, waitForCondition with WaitForConditionResult and WaitStrategies, CallbackTimeoutException/CallbackFailedException handling.

concurrent-operations.md : ctx.map() with MapConfig/CompletionConfig/MapResult, parallel execution via runInChildContextAsync and DurableFuture.allOf()

error-handling.md : Retry strategies, custom retry logic, saga pattern, full Java exception hierarchy.

testing-patterns.md : LocalDurableTestRunner.create(), result.getOperation(), getStepResult(), CloudDurableTestRunner

deployment-iac.md : java21 runtime in CloudFormation, SAM, CDK templates with Java handler format.

advanced-patterns.md : GenAI agent handler with dynamic step naming, custom SerDes with SerDes interface and DurableConfig.

advanced-error-handling.md : Java exception references for timeout and conditional retry sections

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@dhegberg
Copy link
Copy Markdown

dhegberg commented Apr 1, 2026

Hi Deepali.

Thank you for the contribution.

Can you scope the changes down to just the power? It's pulling in changes to the examples.

@DeepaliTandale
Copy link
Copy Markdown
Author

Hi Daniel, I've reverted everything except the Power changes for java.
Do let me know if there's anything else need to be done.

Thank you.

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.

2 participants