aws-patterns
Lambda best practices, S3 event patterns, SQS/SNS fanout, and DynamoDB access patterns for serverless AWS architectures.
Skill by vibeeval
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/vibeeval-aws-patterns
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: cloud
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/aws-patterns
What's inside
- Skill name
aws-patterns- Description
- Lambda best practices, S3 event patterns, SQS/SNS fanout, and DynamoDB access patterns for serverless AWS architectures.
- License
- MIT
- Instructions
- 200 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# AWS Patterns
Serverless and managed service patterns for AWS production workloads.
## Lambda Best Practices
```typescript
// Cold start optimization: keep handler thin, initialize outside handler
import { DynamoDBClient } from '@aws-sdk/client-dynamodb'
import { DynamoDBDocumentClient, GetCommand } from '@aws-sdk/lib-dynamodb'
// Initialized ONCE per container (reused across invocations)
const client = DynamoDBDocumentClient.from(new DynamoDBClient({}))
export const handler = async (event: APIGatewayProxyEvent) => {
try {
const userId = event.pathParameters?.id
if (!userId) {
return { statusCode: 400, body: JSON.stringify({ error: 'Missing user ID' }) }
}
const result = await client.send(new GetCommand({
TableName: process.env.USERS_TABLE!,
Key: { pk: `USER#${userId}`, sk: `PROFILE` }
}))
if (!result.Item) {
return { statusCode: 404, body: JSON.stringify({ error: 'User not found' }) }
}
return {
statusCode: 200,
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(result.Item)
}
} catch (err) {
console.error('Handler error:', err)
return { statusCode: 500, body: JSON.stringify({ error: 'Internal server error' }) }
}
}
```
## S3 Event Processing
```typescript
// S3 → Lambda: process uploaded files
import { S3Client, GetObjectCommand } from '@aws-sdk/client-s3'
const s3 = new S3Client({})
export const handler = async (event: S3Event) => {
for (const record of event.Records) {
const bucket = record.s3.bucket.name
const key = decodeURIComponent(record.s3.object.key.replace(/\+/g, ' '))
const size = record.s3.object.size
// Guard: skip non-image files or oversized uploads
if (size > 10_000_000) {
console.warn(`Skipping oversized file: ${key} (${size} bytes)`)
continue
}
const response = await s3.send(new GetObjectCommand({ Bucket: bucket, Key: key }))
const body = await response.Body!.transformToByteArray()
await processImage(body, key)
console.log(`Processed ${key} (${size} bytes)`)
}
}
```
## SQS/SNS Fanout Pattern
```typescript
// SNS → multiple SQS queues (fanout to parallel consumers)
// Publisher: send to SNS topic
import { SNSClient, PublishCommand } from '@aws-sdk/client-sns'
const sns = new SNSClient({})
async function publishOrderEvent(order: Order): Promise<void> {
await sns.send(new PublishCommand({
TopicArn: process.env.ORDER_EVENTS_TOPIC!,
Message: JSON.stringify(order),
MessageAttributes: {
eventType: { DataType: 'String', StringValue: 'order.created' },
region: { DataType: 'String', StringValue: order.region }
}
}))
}
// Consumer: SQS Lambda (one per subscriber: email, analytics, inventory)
export const emailHandler = async (event: SQSEvent) => {
for (const record of event.Records) {
const order = JSON.parse(record.body) as Order
try {
await sendOrderConfirmation(order)
} catch (err) {
console.error(`Failed to send email for order ${order.id}:`, err)
throw err // Message returns to queue for retry (DLQ after maxReceiveCount)
}
}
}
```
## DynamoDB Single-Table Design
```typescript
// Access patterns drive table design, not entity relationships
// Table: pk (partition key) + sk (sort key) + GSI1PK + GSI1SK
// Entities: User, Order, OrderItem - all in one table
const AccessPatterns = {
// Get user profile
getUserProfile: (userId: string) => ({From vibeeval/vibecosystem, MIT.
More from vibeeval/vibecosystem
- 0.565score
codex-orchestration
vibeeval
OpenAI Codex CLI + Claude Code (Hizir) birlikte kullanim rehberi.
SkillBFreshness: B★ 540Claude Code +9 - 0.562score
plan-agent
vibeeval
Planning agent that creates implementation plans and handoffs from conversation context
SkillBFreshness: B★ 540Claude Code +9 - 0.559score
explore
vibeeval
Meta-skill for internal codebase exploration at varying depths (quick/deep/architecture)
SkillBFreshness: B★ 540Claude Code +9 - 0.559score
cli-reference
vibeeval
Claude Code CLI commands, flags, headless mode, and automation patterns
SkillBFreshness: B★ 540Claude Code +9 - 0.559score
help
vibeeval
Interactive workspace discovery - learn what tools, workflows, agents, and hooks are available
SkillBFreshness: B★ 540Claude Code +9 - 0.524score
tdd-workflow
vibeeval
Use this skill when writing new features, fixing bugs, or refactoring code.
SkillCFreshness: C★ 540Claude Code +9 - 0.522score
compliance-patterns
vibeeval
GDPR data handling, audit logging, data classification, retention policies, and consent management for regulatory compliance.
SkillCFreshness: C★ 540Claude Code +9 - 0.522score
seo-patterns
vibeeval
Meta tag patterns, structured data (JSON-LD), Core Web Vitals optimization, and SSR/SSG strategies for search visibility.
SkillCFreshness: C★ 540Claude Code +9 - 0.522score
grpc-patterns
vibeeval
Protobuf schema design, streaming patterns, interceptor chains, deadline propagation, and error handling for gRPC services.
SkillCFreshness: C★ 540Claude Code +9 - 0.522score
feature-flag-patterns
vibeeval
Gradual rollout strategies, kill switches, A/B testing integration, flag lifecycle management, and technical debt prevention.
SkillCFreshness: C★ 540Claude Code +9 - 0.522score
kotlin-patterns
vibeeval
Coroutine patterns, Flow operators, Jetpack Compose state management, Ktor routing, and Kotlin Multiplatform shared code.
SkillCFreshness: C★ 540Claude Code +9 - 0.522score
experiment-engine
vibeeval
Otonom deney dongusu.
SkillCFreshness: C★ 540Claude Code +9
Signals
- Stars
- 540
- Forks
- 44
- Open issues
- 5
- Last commit (this folder)
- Jun 10, 2026 (4 months ago)
- Last release
- Apr 12, 2026 (6 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/vibeeval/vibecosystem
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from vibeeval
- 0.565score
codex-orchestration
vibeeval
OpenAI Codex CLI + Claude Code (Hizir) birlikte kullanim rehberi.
SkillBFreshness: B★ 540Claude Code +9 - 0.562score
plan-agent
vibeeval
Planning agent that creates implementation plans and handoffs from conversation context
SkillBFreshness: B★ 540Claude Code +9 - 0.559score
explore
vibeeval
Meta-skill for internal codebase exploration at varying depths (quick/deep/architecture)
SkillBFreshness: B★ 540Claude Code +9 - 0.559score
cli-reference
vibeeval
Claude Code CLI commands, flags, headless mode, and automation patterns
SkillBFreshness: B★ 540Claude Code +9 - 0.559score
help
vibeeval
Interactive workspace discovery - learn what tools, workflows, agents, and hooks are available
SkillBFreshness: B★ 540Claude Code +9 - 0.524score
tdd-workflow
vibeeval
Use this skill when writing new features, fixing bugs, or refactoring code.
SkillCFreshness: C★ 540Claude Code +9
Cite this page
aws-patterns skill. Agent Mart. https://agentmart.dev/skills/vibeeval-aws-patterns (last updated 2026-10-24)