aws-samples / aws-samples/serverless-patterns

New pattern submission - cdk-dotnet-durablefunction-imageprocessing

Open
#3,239 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
1.8k
Forks
1.1k
Avg merge
7d 14h
Merged PRs (30d)
6

Description

# New Pattern Submission — cdk-dotnet-durablefunction-imageprocessing

## Pattern Details

- **Title:** Lambda Durable Function — Image Processing Pipeline with Fan-Out/Fan-In (.NET)
- **Description:** A durable function that processes an uploaded image in parallel (thumbnail, watermark, metadata extraction), then writes aggregated results to DynamoDB.
- **Language:** .NET (C#)
- **Framework:** CDK
- **Level:** 300
- **Services:** AWS Lambda, Amazon S3, Amazon DynamoDB

## How It Works

This pattern deploys a Lambda durable function triggered by S3 uploads. When an image is uploaded, the function fans out to three parallel branches: generate a thumbnail, apply a watermark, and extract metadata.

All three branches execute concurrently using ParallelAsync and are independently checkpointed. Once all complete, the function aggregates results and writes them to DynamoDB.

This demonstrates the fan-out/fan-in pattern with durable functions for parallel image processing, with built-in resilience — if any branch fails, only that branch retries on replay.

## GitHub PR for template:

https://github.com/aws-samples/serverless-patterns/pull/3238

## Author

- **Name:** Doug Perkes
- **Bio:** Senior Solutions Architect at AWS, focused on .NET and serverless.
- **LinkedIn:** dougperkes

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the linked GitHub PR #3238 against this submission's C#, CDK, Lambda, S3, and DynamoDB details. Confirm that it implements the described image-processing fan-out/fan-in pattern; done means the linked pattern is reviewed and accepted.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, csharp
Domain
backend, cloud
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.