AWS Lambda Durable Functions
awslabs/agent-plugins
Build resilient, long-running, multi-step applications with AWS Lambda durable functions with automatic state persistence, retry logic, and orchestration for long-running executions.
AWS serverless and event-driven architecture expert based on Well-Architected Framework.
$ npx skills add zxkane/aws-skills --skill aws-serverless-eda -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install zxkane/aws-skills aws-serverless-eda --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/zxkane/aws-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/serverless-eda/skills/aws-serverless-eda .claude/skills/aws-serverless-eda && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "aws-serverless-eda" agent skill from https://github.com/zxkane/aws-skills/tree/main/plugins/serverless-eda/skills/aws-serverless-eda into .claude/skills/aws-serverless-eda/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aws-serverless-eda", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/zxkane/aws-skills/tree/main/plugins/serverless-eda/skills/aws-serverless-edaType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add zxkane/aws-skills --skill aws-serverless-eda -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install zxkane/aws-skills aws-serverless-eda --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/zxkane/aws-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/serverless-eda/skills/aws-serverless-eda .agents/skills/aws-serverless-eda && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "aws-serverless-eda" agent skill from https://github.com/zxkane/aws-skills/tree/main/plugins/serverless-eda/skills/aws-serverless-eda into .agents/skills/aws-serverless-eda/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aws-serverless-eda", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add zxkane/aws-skills --skill aws-serverless-eda -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install zxkane/aws-skills aws-serverless-eda --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/zxkane/aws-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/serverless-eda/skills/aws-serverless-eda .cursor/skills/aws-serverless-eda && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "aws-serverless-eda" agent skill from https://github.com/zxkane/aws-skills/tree/main/plugins/serverless-eda/skills/aws-serverless-eda into .cursor/skills/aws-serverless-eda/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aws-serverless-eda", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/zxkane/aws-skills.git --path plugins/serverless-eda/skills/aws-serverless-eda--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add zxkane/aws-skills --skill aws-serverless-eda -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install zxkane/aws-skills aws-serverless-eda --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/zxkane/aws-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/serverless-eda/skills/aws-serverless-eda .gemini/skills/aws-serverless-eda && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "aws-serverless-eda" agent skill from https://github.com/zxkane/aws-skills/tree/main/plugins/serverless-eda/skills/aws-serverless-eda into .gemini/skills/aws-serverless-eda/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aws-serverless-eda", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install zxkane/aws-skills aws-serverless-edaInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add zxkane/aws-skills --skill aws-serverless-eda -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/zxkane/aws-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/serverless-eda/skills/aws-serverless-eda .github/skills/aws-serverless-eda && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "aws-serverless-eda" agent skill from https://github.com/zxkane/aws-skills/tree/main/plugins/serverless-eda/skills/aws-serverless-eda into .github/skills/aws-serverless-eda/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aws-serverless-eda", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add zxkane/aws-skills --skill aws-serverless-eda -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install zxkane/aws-skills aws-serverless-eda --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/zxkane/aws-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/serverless-eda/skills/aws-serverless-eda .opencode/skills/aws-serverless-eda && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "aws-serverless-eda" agent skill from https://github.com/zxkane/aws-skills/tree/main/plugins/serverless-eda/skills/aws-serverless-eda into .opencode/skills/aws-serverless-eda/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aws-serverless-eda", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
aws-serverless-edaAWS serverless and event-driven architecture expert based on Well-Architected Framework.
AWS Serverless Eda is an agent skill from zxkane/aws-skills. AWS serverless and event-driven architecture expert based on Well-Architected Framework. Use when building serverless APIs, Lambda functions, REST APIs, microservices, or async workflows. Covers Lambda with TypeScript/Python, API Gateway (REST/HTTP), DynamoDB, Step Functions, EventBridge, SQS, SNS, and serverless patterns. Essential when user mentions serverless, Lambda, API Gateway, event-driven, async processing, queues, pub/sub, or wants to build scalable serverless applications with AWS best practices.
Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `references/deployment-best-practices.md`, `references/eda-patterns.md` and `references/observability-best-practices.md`).
It sits in Backend & APIs, covering Serverless, Event-driven systems and Microservices. It works with Amazon Web Services, Model Context Protocol, AWS Lambda and Amazon DynamoDB. The repository describes itself as: Claude Code plugins and agent skills for AWS development — IaC(CDK/SST), serverless, cost ops, and Bedrock AgentCore. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 68530c6. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
mcp__aws-mcp__*mcp__awsdocs__*mcp__cdk__*Bash(sam *)Bash(aws lambda *)Bash(aws apigateway *)Bash(aws apigatewayv2 *)Bash(aws dynamodb *)Bash(aws stepfunctions *)Bash(aws events *)…and 3 more on the same allowed-tools line.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
docs.aws.amazon.comserverlessland.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
AWS Serverless Eda loads about 3.2k tokens when it runs, and up to ~32k if it reads all its reference files. Until then it costs about 133 tokens; SKILL.md has 758 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from zxkane/aws-skills at commit 68530c6, republished under its MIT licence (© zxkane). 758 words, ~3,212 tokens.
.claude/skills/aws-serverless-eda/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.This skill provides comprehensive guidance for building serverless applications and event-driven architectures on AWS based on Well-Architected Framework principles.
Always verify AWS facts using MCP tools (mcp__aws-mcp__* or mcp__*awsdocs*__*) before answering. The aws-mcp-setup dependency is auto-loaded — if MCP tools are unavailable, guide the user through that skill's setup flow.
This skill leverages the CDK MCP server (provided via aws-cdk-development dependency) and AWS Documentation MCP for serverless guidance.
Note: The following AWS MCP servers are available separately via the Full AWS MCP Server (see
aws-mcp-setupskill) and are not bundled with this plugin:
- AWS Serverless MCP — SAM CLI lifecycle (init, deploy, local test)
- AWS Lambda Tool MCP — Direct Lambda invocation
- AWS Step Functions MCP — Workflow orchestration
- Amazon SNS/SQS MCP — Messaging and queue management
Use this skill when:
Functions should be concise and single-purpose
// ✅ GOOD - Single purpose, focused function
export const processOrder = async (event: OrderEvent) => {
// Only handles order processing
const order = await validateOrder(event);
await saveOrder(order);
await publishOrderCreatedEvent(order);
return { statusCode: 200, body: JSON.stringify({ orderId: order.id }) };
};
// ❌ BAD - Function does too much
export const handleEverything = async (event: any) => {
// Handles orders, inventory, payments, shipping...
// Too many responsibilities
};Keep functions environmentally efficient and cost-aware:
Design for concurrency, not volume
Lambda scales horizontally - design considerations should focus on:
// Consider concurrent Lambda executions accessing DynamoDB
const table = new dynamodb.Table(this, 'Table', {
billingMode: dynamodb.BillingMode.PAY_PER_REQUEST, // Auto-scales with load
});
// Or with provisioned capacity + auto-scaling
const table = new dynamodb.Table(this, 'Table', {
billingMode: dynamodb.BillingMode.PROVISIONED,
readCapacity: 5,
writeCapacity: 5,
});
// Enable auto-scaling for concurrent load
table.autoScaleReadCapacity({ minCapacity: 5, maxCapacity: 100 });
table.autoScaleWriteCapacity({ minCapacity: 5, maxCapacity: 100 });Function runtime environments are short-lived
// ❌ BAD - Relying on local file system
export const handler = async (event: any) => {
fs.writeFileSync('/tmp/data.json', JSON.stringify(data)); // Lost after execution
};
// ✅ GOOD - Use persistent storage
export const handler = async (event: any) => {
await s3.putObject({
Bucket: process.env.BUCKET_NAME,
Key: 'data.json',
Body: JSON.stringify(data),
});
};State management:
Applications must be hardware-agnostic
Infrastructure can change without notice:
Design for portability:
Use Step Functions for orchestration
// ❌ BAD - Lambda function chaining
export const handler1 = async (event: any) => {
const result = await processStep1(event);
await lambda.invoke({
FunctionName: 'handler2',
Payload: JSON.stringify(result),
});
};
// ✅ GOOD - Step Functions orchestration
const stateMachine = new stepfunctions.StateMachine(this, 'OrderWorkflow', {
definition: stepfunctions.Chain
.start(validateOrder)
.next(processPayment)
.next(shipOrder)
.next(sendConfirmation),
});Benefits of Step Functions:
Event-driven over synchronous request/response
// Pattern: Event-driven processing
const bucket = new s3.Bucket(this, 'DataBucket');
bucket.addEventNotification(
s3.EventType.OBJECT_CREATED,
new s3n.LambdaDestination(processFunction),
{ prefix: 'uploads/' }
);
// Pattern: EventBridge integration
const rule = new events.Rule(this, 'OrderRule', {
eventPattern: {
source: ['orders'],
detailType: ['OrderPlaced'],
},
});
rule.addTarget(new targets.LambdaFunction(processOrderFunction));Benefits:
Operations must be idempotent
// ✅ GOOD - Idempotent operation
export const handler = async (event: SQSEvent) => {
for (const record of event.Records) {
const orderId = JSON.parse(record.body).orderId;
// Check if already processed (idempotency)
const existing = await dynamodb.getItem({
TableName: process.env.TABLE_NAME,
Key: { orderId },
});
if (existing.Item) {
console.log('Order already processed:', orderId);
continue; // Skip duplicate
}
// Process order
await processOrder(orderId);
// Mark as processed
await dynamodb.putItem({
TableName: process.env.TABLE_NAME,
Item: { orderId, processedAt: Date.now() },
});
}
};Implement retry logic with exponential backoff:
async function withRetry<T>(fn: () => Promise<T>, maxRetries = 3): Promise<T> {
for (let i = 0; i < maxRetries; i++) {
try {
return await fn();
} catch (error) {
if (i === maxRetries - 1) throw error;
await new Promise(resolve => setTimeout(resolve, Math.pow(2, i) * 1000));
}
}
throw new Error('Max retries exceeded');
}For detailed implementation patterns with full code examples, see the reference documentation:
File: references/eda-patterns.md
File: references/serverless-patterns.md
Important: When using CDK code examples from references, avoid hardcoding resource names (e.g.,
restApiName,eventBusName). Let CDK generate unique names automatically to enable reusability and parallel deployments. Seeaws-cdk-developmentskill for details.
Implement comprehensive error handling:
export const handler = async (event: SQSEvent) => {
const failures: SQSBatchItemFailure[] = [];
for (const record of event.Records) {
try {
await processRecord(record);
} catch (error) {
console.error('Failed to process record:', record.messageId, error);
failures.push({ itemIdentifier: record.messageId });
}
}
// Return partial batch failures for retry
return { batchItemFailures: failures };
};Always configure DLQs for error handling:
const dlq = new sqs.Queue(this, 'DLQ', {
retentionPeriod: Duration.days(14),
});
const queue = new sqs.Queue(this, 'Queue', {
deadLetterQueue: {
queue: dlq,
maxReceiveCount: 3,
},
});
// Monitor DLQ depth
new cloudwatch.Alarm(this, 'DLQAlarm', {
metric: dlq.metricApproximateNumberOfMessagesVisible(),
threshold: 1,
evaluationPeriods: 1,
alarmDescription: 'Messages in DLQ require attention',
});Enable tracing and monitoring:
new NodejsFunction(this, 'Function', {
entry: 'src/handler.ts',
tracing: lambda.Tracing.ACTIVE, // X-Ray tracing
environment: {
POWERTOOLS_SERVICE_NAME: 'order-service',
POWERTOOLS_METRICS_NAMESPACE: 'MyApp',
LOG_LEVEL: 'INFO',
},
});Use the CDK MCP server (via aws-cdk-development dependency) for construct recommendations and CDK-specific guidance when building serverless infrastructure.
Use AWS Documentation MCP to verify service features, regional availability, and API specifications before implementing.
This skill includes comprehensive reference documentation based on AWS best practices:
Serverless Patterns: references/serverless-patterns.md
Event-Driven Architecture Patterns: references/eda-patterns.md
Security Best Practices: references/security-best-practices.md
Observability Best Practices: references/observability-best-practices.md
Performance Optimization: references/performance-optimization.md
Deployment Best Practices: references/deployment-best-practices.md
External Resources:
For detailed implementation patterns, anti-patterns, and code examples, refer to the comprehensive references in the skill directory.
© zxkane, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 6 other files (references) in plugins/serverless-eda/skills/aws-serverless-eda of zxkane/aws-skills.
Open the folder on GitHubat commit 68530c6
We found 9 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 4 other GitHub owners. This page covers the copy in zxkane/aws-skills, which our catalogue first saw on October 7, 2026.
AWS Serverless Eda next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| AWS Serverless Eda this skillzxkane/aws-skills | 367 | 4 repos | ~3.2k | Automated safety check: Pass | MIT | |
| AWS Lambda Durable Functionsawslabs/agent-plugins | 915 | — | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| AWS Serverlessaws/agent-toolkit-for-aws | 2.8k | — | ~2.5k | Automated safety check: Pass | Apache-2.0 | |
| AWS Serverlessdavila7/claude-code-templates | 32k | 8 repos | ~2k | Automated safety check: Pass | MIT | |
| AWS Step Functionsaws/agent-toolkit-for-aws | 2.8k | — | ~3.4k | Automated safety check: Pass | Apache-2.0 | |
| AWS Lambdaawslabs/agent-plugins | 915 | — | ~3.1k | Automated safety check: Pass | Apache-2.0 |
awslabs/agent-plugins
Build resilient, long-running, multi-step applications with AWS Lambda durable functions with automatic state persistence, retry logic, and orchestration for long-running executions.
aws/agent-toolkit-for-aws
Builds, deploys, manages, debugs, configures, and optimizes serverless applications on AWS using Lambda, API Gateway, Step Functions, EventBridge, and SAM/CDK.
davila7/claude-code-templates
Specialized skill for building production-ready serverless applications on AWS.
aws/agent-toolkit-for-aws
Authors and edits AWS Step Functions state machines: writes Amazon States Language (ASL) in JSONata, and chooses and structures state types (Task, Choice, Map, Parallel, Pass, Wait, Succeed, Fail).
awslabs/agent-plugins
Design, build, deploy, test, and debug serverless applications with AWS Lambda.
aws/agent-toolkit-for-aws
Adds user authentication to web and mobile apps with Amazon Cognito (user pools and identity pools) and the AWS Amplify client auth libraries.
zxkane/aws-skills
AWS Cloud Development Kit (CDK) expert for building cloud infrastructure with TypeScript/Python.
zxkane/aws-skills
AWS Bedrock AgentCore comprehensive expert for deploying and managing AI agents at scale.
zxkane/aws-skills
AWS cost optimization, monitoring, and operational excellence expert.
zxkane/aws-skills
Configure AWS MCP servers for documentation search and API access.
zxkane/aws-skills
SST v4 (Ion) expert for managing AWS resources as code with the Pulumi-backed framework.
Categories
AWS serverless and event-driven architecture expert based on Well-Architected Framework. AWS Serverless Eda is an agent skill from zxkane/aws-skills. AWS serverless and event-driven architecture expert based on Well-Architected Framework.
AWS Serverless Eda fits situations like: building serverless APIs; lambda functions; async workflows; mentions serverless.
Run `npx skills add zxkane/aws-skills --skill aws-serverless-eda -a claude-code`. Or copy the skill folder (plugins/serverless-eda/skills/aws-serverless-eda in zxkane/aws-skills) into .claude/skills/aws-serverless-eda in your project. Claude Code loads it when a task matches its description.
Run `npx skills add zxkane/aws-skills --skill aws-serverless-eda -a codex`. Or copy the skill folder (plugins/serverless-eda/skills/aws-serverless-eda in zxkane/aws-skills) into .agents/skills/aws-serverless-eda in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add zxkane/aws-skills --skill aws-serverless-eda -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/aws-serverless-eda, .gemini/skills/aws-serverless-eda, .github/skills/aws-serverless-eda and .opencode/skills/aws-serverless-eda in your project.
SKILL.md names no scripts, command-line tools or credentials: AWS Serverless Eda is instructions for the agent only. Its frontmatter pre-approves these tools: mcp__aws-mcp__*, mcp__awsdocs__*, mcp__cdk__*, Bash(sam *), Bash(aws lambda *), Bash(aws apigateway *), Bash(aws apigatewayv2 *), Bash(aws dynamodb *), Bash(aws stepfunctions *), Bash(aws events *), Bash(aws sqs *), Bash(aws sns *), Bash(aws sts get-caller-identity).
SKILL.md names 2 domains. As links in the text: docs.aws.amazon.com and serverlessland.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
AWS Serverless Eda is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 29k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with AWS Serverless Eda: AWS Lambda Durable Functions (awslabs/agent-plugins, 915 stars), AWS Serverless (aws/agent-toolkit-for-aws, 2.8k stars), AWS Serverless (davila7/claude-code-templates, 32k stars) and AWS Step Functions (aws/agent-toolkit-for-aws, 2.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
zxkane (a GitHub user) maintains it in zxkane/aws-skills, which has 367 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on June 15, 2026.
Source: zxkane/aws-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.