Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
5dbccb6
Added pattern lambda-durable-java-sam
indranil-banerjee-aws Jul 11, 2026
537ae87
Added pattern lambda-durable-java-sam
indranil-banerjee-aws Jul 12, 2026
1c96849
Added pattern lambda-durable-java-sam
indranil-banerjee-aws Jul 12, 2026
fd76af4
Added pattern lambda-durable-java-sam
indranil-banerjee-aws Jul 12, 2026
c3fabb3
Added pattern lambda-durable-java-sam
indranil-banerjee-aws Jul 14, 2026
70300f0
Added pattern lambda-durable-java-sam
indranil-banerjee-aws Jul 14, 2026
e263a32
Added pattern lambda-durable-java-sam
indranil-banerjee-aws Jul 14, 2026
1758fff
Added pattern lambda-durable-java-sam
indranil-banerjee-aws Jul 14, 2026
60b5e49
Added pattern lambda-durable-java-sam
indranil-banerjee-aws Jul 14, 2026
60f7048
Added pattern lambda-durable-java-sam
indranil-banerjee-aws Jul 14, 2026
c7fa711
Added pattern lambda-durable-java-sam
indranil-banerjee-aws Jul 15, 2026
7dc0052
Added pattern lambda-durable-java-sam
indranil-banerjee-aws Jul 15, 2026
9d13912
Added pattern lambda-durable-java-sam
indranil-banerjee-aws Jul 15, 2026
f9583d3
Added pattern lambda-durable-java-sam
indranil-banerjee-aws Jul 15, 2026
868efde
Added pattern lambda-durable-java-sam
indranil-banerjee-aws Jul 16, 2026
9c4b036
Added pattern lambda-durable-java-sam
indranil-banerjee-aws Jul 16, 2026
87d5fb4
Added pattern lambda-durable-java-sam
indranil-banerjee-aws Jul 16, 2026
097e7e4
Added pattern lambda-durable-java-sam
indranil-banerjee-aws Jul 17, 2026
0c29473
Added pattern lambda-durable-java-sam
indranil-banerjee-aws Jul 20, 2026
13c33ae
Added pattern lambda-durable-java-sam
indranil-banerjee-aws Jul 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
672 changes: 672 additions & 0 deletions lambda-durable-java-sam/DEVELOPER_GUIDE.md

Large diffs are not rendered by default.

67 changes: 67 additions & 0 deletions lambda-durable-java-sam/DIAGRAMS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Lambda Durable Functions - Step Diagrams

Visual step-by-step flow diagrams for each durable execution pattern.

---

## Pattern 1: Function Chaining

Sequential steps where each step's output feeds into the next. Completed steps are checkpointed and never re-executed on replay.

![Pattern 1: Chaining](images/pattern1-chaining.svg)

---

## Pattern 2: Fan-Out / Fan-In

Parallel execution of independent operations with result aggregation. Uses `parallel()` for heterogeneous tasks and `map()` for homogeneous collection processing.

![Pattern 2: Fan-Out/Fan-In](images/pattern2-fanout.svg)

---

## Pattern 3: Human Interaction

Execution suspends while waiting for an external human decision via callback. No compute charges during the wait. An external system calls `send-durable-execution-callback-success` or `send-durable-execution-callback-failure` to resume.

![Pattern 3: Human Interaction](images/pattern3-human-interaction.svg)

---

## Pattern 4: Monitoring / Polling

Uses `waitForCondition` to poll an external system with exponential backoff. The function suspends between polls without consuming compute.

![Pattern 4: Monitoring](images/pattern4-monitoring.svg)

---

## Pattern 5: Timer / Scheduled Delays

Uses `wait()` to suspend execution for specified durations. The function exits and is automatically resumed when the wait completes — zero compute charges during waits.

![Pattern 5: Timer](images/pattern5-timer.svg)

---

## Pattern 6: Error Handling & Saga Compensation

Demonstrates retries with backoff, at-most-once semantics for non-idempotent operations, custom retry logic, and saga compensation when later steps fail.

![Pattern 6: Error Handling](images/pattern6-error-handling.svg)

---

## Pattern 7: Map Processing

Processes a collection concurrently with configurable concurrency limits and failure tolerance. Each item gets its own child context with independent checkpoints.

![Pattern 7: Map Processing](images/pattern7-map-processing.svg)

---

## Pattern 8: Sub-Orchestration

Uses `runInChildContext()` and `runInChildContextAsync()` to compose complex workflows from isolated, reusable sub-workflows. Each child context has its own operation namespace.

![Pattern 8: Sub-Orchestration](images/pattern8-sub-orchestration.svg)
Loading