@ngxtm/devkit 3.7.0 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/merged-commands/3d-web-experience.md +254 -0
- package/merged-commands/ab-test-setup.md +232 -0
- package/merged-commands/accessibility-compliance-accessibility-audit.md +42 -0
- package/merged-commands/active-directory-attacks.md +383 -0
- package/merged-commands/address-github-comments.md +55 -0
- package/merged-commands/aesthetic.md +134 -0
- package/merged-commands/agent-evaluation.md +64 -0
- package/merged-commands/agent-framework-azure-hosted-agents.md +332 -0
- package/merged-commands/agent-manager-skill.md +40 -0
- package/merged-commands/agent-memory-mcp.md +82 -0
- package/merged-commands/agent-memory-systems.md +67 -0
- package/merged-commands/agent-orchestration-improve-agent.md +349 -0
- package/merged-commands/agent-orchestration-multi-agent-optimize.md +239 -0
- package/merged-commands/agent-tool-builder.md +53 -0
- package/merged-commands/agile-product-owner.md +31 -0
- package/merged-commands/ai-agents-architect.md +90 -0
- package/merged-commands/ai-artist.md +75 -0
- package/merged-commands/ai-engineer.md +171 -0
- package/merged-commands/ai-multimodal.md +109 -0
- package/merged-commands/ai-product.md +54 -0
- package/merged-commands/ai-wrapper-product.md +273 -0
- package/merged-commands/airflow-dag-patterns.md +41 -0
- package/merged-commands/algolia-search.md +66 -0
- package/merged-commands/algorithmic-art.md +405 -0
- package/merged-commands/analytics-tracking.md +404 -0
- package/merged-commands/angular-architect.md +97 -0
- package/merged-commands/angular-migration.md +428 -0
- package/merged-commands/anti-reversing-techniques.md +42 -0
- package/merged-commands/api-design-principles.md +37 -0
- package/merged-commands/api-designer.md +101 -0
- package/merged-commands/api-documentation-generator.md +484 -0
- package/merged-commands/api-documenter.md +184 -0
- package/merged-commands/api-fuzzing-bug-bounty.md +433 -0
- package/merged-commands/api-patterns.md +81 -0
- package/merged-commands/api-security-best-practices.md +907 -0
- package/merged-commands/api-testing-observability-api-mock.md +46 -0
- package/merged-commands/app-builder.md +75 -0
- package/merged-commands/app-store-optimization.md +403 -0
- package/merged-commands/application-performance-performance-optimization.md +154 -0
- package/merged-commands/architect-review.md +174 -0
- package/merged-commands/architecture-decision-records.md +441 -0
- package/merged-commands/architecture-designer.md +89 -0
- package/merged-commands/architecture-patterns.md +37 -0
- package/merged-commands/architecture.md +55 -0
- package/merged-commands/arm-cortex-expert.md +306 -0
- package/merged-commands/artifacts-builder.md +74 -0
- package/merged-commands/ask-questions-if-underspecified.md +81 -0
- package/merged-commands/async-python-patterns.md +39 -0
- package/merged-commands/atlassian-mcp.md +100 -0
- package/merged-commands/attack-tree-construction.md +38 -0
- package/merged-commands/auth-implementation-patterns.md +39 -0
- package/merged-commands/automate-whatsapp.md +257 -0
- package/merged-commands/autonomous-agent-patterns.md +761 -0
- package/merged-commands/autonomous-agents.md +68 -0
- package/merged-commands/avalonia-layout-zafiro.md +59 -0
- package/merged-commands/avalonia-viewmodels-zafiro.md +29 -0
- package/merged-commands/avalonia-zafiro-development.md +29 -0
- package/merged-commands/aws-agentic-ai.md +117 -0
- package/merged-commands/aws-cdk-development.md +278 -0
- package/merged-commands/aws-cost-operations.md +317 -0
- package/merged-commands/aws-penetration-testing.md +405 -0
- package/merged-commands/aws-serverless-eda.md +757 -0
- package/merged-commands/aws-serverless.md +323 -0
- package/merged-commands/aws-skills.md +22 -0
- package/merged-commands/azd-deployment.md +296 -0
- package/merged-commands/azure-ai-agents-python.md +277 -0
- package/merged-commands/azure-ai-search-python.md +198 -0
- package/merged-commands/azure-ai-voicelive-skill.md +294 -0
- package/merged-commands/azure-functions.md +42 -0
- package/merged-commands/backend-architect.md +333 -0
- package/merged-commands/backend-dev-guidelines.md +342 -0
- package/merged-commands/backend-development-feature-development.md +180 -0
- package/merged-commands/backend-development.md +155 -0
- package/merged-commands/backend-security-coder.md +156 -0
- package/merged-commands/backtesting-frameworks.md +39 -0
- package/merged-commands/bash-defensive-patterns.md +43 -0
- package/merged-commands/bash-linux.md +199 -0
- package/merged-commands/bash-pro.md +310 -0
- package/merged-commands/bats-testing-patterns.md +34 -0
- package/merged-commands/bazel-build-optimization.md +397 -0
- package/merged-commands/beautiful-prose.md +22 -0
- package/merged-commands/behavioral-modes.md +242 -0
- package/merged-commands/best-practices.md +500 -0
- package/merged-commands/better-auth.md +204 -0
- package/merged-commands/billing-automation.md +42 -0
- package/merged-commands/binary-analysis-patterns.md +450 -0
- package/merged-commands/blockchain-developer.md +208 -0
- package/merged-commands/blockrun.md +292 -0
- package/merged-commands/brainstorming.md +230 -0
- package/merged-commands/brand-guidelines-anthropic.md +73 -0
- package/merged-commands/brand-guidelines-community.md +73 -0
- package/merged-commands/brand-guidelines.md +73 -0
- package/merged-commands/broken-authentication.md +476 -0
- package/merged-commands/browser-automation.md +70 -0
- package/merged-commands/browser-extension-builder.md +261 -0
- package/merged-commands/building-ai-agent-on-cloudflare.md +391 -0
- package/merged-commands/building-mcp-server-on-cloudflare.md +265 -0
- package/merged-commands/bullmq-specialist.md +57 -0
- package/merged-commands/bun-development.md +691 -0
- package/merged-commands/burp-suite-testing.md +380 -0
- package/merged-commands/business-analyst.md +182 -0
- package/merged-commands/busybox-on-windows.md +30 -0
- package/merged-commands/c-pro.md +56 -0
- package/merged-commands/c4-architecture-c4-architecture.md +389 -0
- package/merged-commands/c4-code.md +244 -0
- package/merged-commands/c4-component.md +153 -0
- package/merged-commands/c4-container.md +171 -0
- package/merged-commands/c4-context.md +150 -0
- package/merged-commands/canvas-design.md +130 -0
- package/merged-commands/cc-skill-backend-patterns.md +584 -0
- package/merged-commands/cc-skill-clickhouse-io.md +431 -0
- package/merged-commands/cc-skill-coding-standards.md +522 -0
- package/merged-commands/cc-skill-continuous-learning.md +10 -0
- package/merged-commands/cc-skill-frontend-patterns.md +633 -0
- package/merged-commands/cc-skill-project-guidelines-example.md +352 -0
- package/merged-commands/cc-skill-security-review.md +496 -0
- package/merged-commands/cc-skill-strategic-compact.md +10 -0
- package/merged-commands/changelog-automation.md +38 -0
- package/merged-commands/changelog-generator.md +104 -0
- package/merged-commands/chaos-engineer.md +98 -0
- package/merged-commands/chrome-devtools.md +407 -0
- package/merged-commands/cicd-automation-workflow-automate.md +51 -0
- package/merged-commands/clarity-gate.md +22 -0
- package/merged-commands/claude-ally-health.md +22 -0
- package/merged-commands/claude-code-guide.md +68 -0
- package/merged-commands/claude-d3js-skill.md +820 -0
- package/merged-commands/claude-scientific-skills.md +22 -0
- package/merged-commands/claude-speed-reader.md +22 -0
- package/merged-commands/claude-win11-speckit-update-skill.md +22 -0
- package/merged-commands/clean-code.md +201 -0
- package/merged-commands/clerk-auth.md +56 -0
- package/merged-commands/cli-developer.md +97 -0
- package/merged-commands/cloud-architect.md +135 -0
- package/merged-commands/cloud-penetration-testing.md +501 -0
- package/merged-commands/cloudflare-expert.md +227 -0
- package/merged-commands/code-documentation-code-explain.md +46 -0
- package/merged-commands/code-documentation-doc-generate.md +48 -0
- package/merged-commands/code-documentation.md +263 -0
- package/merged-commands/code-documenter.md +95 -0
- package/merged-commands/code-refactoring-context-restore.md +179 -0
- package/merged-commands/code-refactoring-refactor-clean.md +51 -0
- package/merged-commands/code-refactoring-tech-debt.md +386 -0
- package/merged-commands/code-refactoring.md +209 -0
- package/merged-commands/code-review-ai-ai-review.md +450 -0
- package/merged-commands/code-review-checklist.md +444 -0
- package/merged-commands/code-review-excellence.md +40 -0
- package/merged-commands/code-review.md +121 -0
- package/merged-commands/code-reviewer.md +178 -0
- package/merged-commands/codebase-cleanup-deps-audit.md +51 -0
- package/merged-commands/codebase-cleanup-refactor-clean.md +51 -0
- package/merged-commands/codebase-cleanup-tech-debt.md +386 -0
- package/merged-commands/codex-review.md +37 -0
- package/merged-commands/commit.md +171 -0
- package/merged-commands/competitive-ads-extractor.md +293 -0
- package/merged-commands/competitive-landscape.md +34 -0
- package/merged-commands/competitor-alternatives.md +750 -0
- package/merged-commands/comprehensive-review-full-review.md +146 -0
- package/merged-commands/comprehensive-review-pr-enhance.md +46 -0
- package/merged-commands/computer-use-agents.md +315 -0
- package/merged-commands/concise-planning.md +62 -0
- package/merged-commands/conductor-implement.md +388 -0
- package/merged-commands/conductor-manage.md +39 -0
- package/merged-commands/conductor-new-track.md +433 -0
- package/merged-commands/conductor-revert.md +372 -0
- package/merged-commands/conductor-setup.md +426 -0
- package/merged-commands/conductor-status.md +338 -0
- package/merged-commands/conductor-validator.md +62 -0
- package/merged-commands/content-creator.md +248 -0
- package/merged-commands/content-marketer.md +170 -0
- package/merged-commands/content-research-writer.md +538 -0
- package/merged-commands/context-compression.md +266 -0
- package/merged-commands/context-degradation.md +238 -0
- package/merged-commands/context-driven-development.md +400 -0
- package/merged-commands/context-engineering.md +107 -0
- package/merged-commands/context-fundamentals.md +192 -0
- package/merged-commands/context-management-context-restore.md +179 -0
- package/merged-commands/context-management-context-save.md +177 -0
- package/merged-commands/context-manager.md +185 -0
- package/merged-commands/context-optimization.md +186 -0
- package/merged-commands/context-window-management.md +53 -0
- package/merged-commands/context7-auto-research.md +36 -0
- package/merged-commands/conversation-memory.md +61 -0
- package/merged-commands/copy-editing.md +439 -0
- package/merged-commands/copywriting.md +225 -0
- package/merged-commands/core-components.md +264 -0
- package/merged-commands/cosmos-db-python-skill.md +198 -0
- package/merged-commands/cost-optimization.md +286 -0
- package/merged-commands/cpp-pro.md +59 -0
- package/merged-commands/cqrs-implementation.md +35 -0
- package/merged-commands/create-pr.md +192 -0
- package/merged-commands/crewai.md +243 -0
- package/merged-commands/csharp-developer.md +94 -0
- package/merged-commands/csharp-pro.md +59 -0
- package/merged-commands/culture-index.md +43 -0
- package/merged-commands/customer-support.md +170 -0
- package/merged-commands/daily-news-report.md +356 -0
- package/merged-commands/data-engineer.md +224 -0
- package/merged-commands/data-engineering-data-driven-feature.md +182 -0
- package/merged-commands/data-engineering-data-pipeline.md +201 -0
- package/merged-commands/data-quality-frameworks.md +40 -0
- package/merged-commands/data-scientist.md +199 -0
- package/merged-commands/data-storytelling.md +465 -0
- package/merged-commands/database-admin.md +165 -0
- package/merged-commands/database-architect.md +268 -0
- package/merged-commands/database-cloud-optimization-cost-optimize.md +44 -0
- package/merged-commands/database-design.md +52 -0
- package/merged-commands/database-migration.md +436 -0
- package/merged-commands/database-migrations-migration-observability.md +420 -0
- package/merged-commands/database-migrations-sql-migrations.md +53 -0
- package/merged-commands/database-optimizer.md +167 -0
- package/merged-commands/databases.md +232 -0
- package/merged-commands/dbt-transformation-patterns.md +34 -0
- package/merged-commands/debugger.md +49 -0
- package/merged-commands/debugging-strategies.md +34 -0
- package/merged-commands/debugging-toolkit-smart-debug.md +197 -0
- package/merged-commands/debugging-wizard.md +93 -0
- package/merged-commands/debugging.md +84 -0
- package/merged-commands/deep-research.md +114 -0
- package/merged-commands/defi-protocol-templates.md +466 -0
- package/merged-commands/dependency-management-deps-audit.md +44 -0
- package/merged-commands/dependency-upgrade.md +421 -0
- package/merged-commands/deployment-engineer.md +170 -0
- package/merged-commands/deployment-pipeline-design.md +371 -0
- package/merged-commands/deployment-procedures.md +241 -0
- package/merged-commands/deployment-validation-config-validate.md +496 -0
- package/merged-commands/design-md.md +178 -0
- package/merged-commands/design-orchestration.md +167 -0
- package/merged-commands/developer-growth-analysis.md +322 -0
- package/merged-commands/devops-engineer.md +92 -0
- package/merged-commands/devops-troubleshooter.md +161 -0
- package/merged-commands/devops.md +285 -0
- package/merged-commands/discord-bot-architect.md +277 -0
- package/merged-commands/dispatching-parallel-agents.md +180 -0
- package/merged-commands/distributed-debugging-debug-trace.md +44 -0
- package/merged-commands/distributed-tracing.md +450 -0
- package/merged-commands/django-expert.md +89 -0
- package/merged-commands/django-pro.md +180 -0
- package/merged-commands/doc-coauthoring.md +375 -0
- package/merged-commands/docker-expert.md +409 -0
- package/merged-commands/docs-architect.md +98 -0
- package/merged-commands/docs-seeker.md +102 -0
- package/merged-commands/documentation-generation-doc-generate.md +48 -0
- package/merged-commands/documentation-templates.md +194 -0
- package/merged-commands/docx-official.md +197 -0
- package/merged-commands/docx.md +197 -0
- package/merged-commands/domain-name-brainstormer.md +212 -0
- package/merged-commands/dotnet-architect.md +197 -0
- package/merged-commands/dotnet-backend-patterns.md +37 -0
- package/merged-commands/dotnet-core-expert.md +96 -0
- package/merged-commands/dx-optimizer.md +83 -0
- package/merged-commands/e2e-testing-patterns.md +41 -0
- package/merged-commands/elixir-pro.md +59 -0
- package/merged-commands/email-sequence.md +925 -0
- package/merged-commands/email-systems.md +54 -0
- package/merged-commands/embedded-systems.md +98 -0
- package/merged-commands/embedding-strategies.md +491 -0
- package/merged-commands/employment-contract-templates.md +39 -0
- package/merged-commands/environment-setup-guide.md +479 -0
- package/merged-commands/error-debugging-error-analysis.md +47 -0
- package/merged-commands/error-debugging-error-trace.md +43 -0
- package/merged-commands/error-debugging-multi-agent-review.md +216 -0
- package/merged-commands/error-detective.md +53 -0
- package/merged-commands/error-diagnostics-error-analysis.md +47 -0
- package/merged-commands/error-diagnostics-error-trace.md +48 -0
- package/merged-commands/error-diagnostics-smart-debug.md +197 -0
- package/merged-commands/error-handling-patterns.md +35 -0
- package/merged-commands/ethical-hacking-methodology.md +466 -0
- package/merged-commands/evaluation.md +238 -0
- package/merged-commands/event-sourcing-architect.md +58 -0
- package/merged-commands/event-store-design.md +449 -0
- package/merged-commands/exa-search.md +36 -0
- package/merged-commands/executing-plans.md +76 -0
- package/merged-commands/expo-app-design.md +22 -0
- package/merged-commands/expo-deployment.md +72 -0
- package/merged-commands/fal-audio.md +22 -0
- package/merged-commands/fal-generate.md +22 -0
- package/merged-commands/fal-image-edit.md +22 -0
- package/merged-commands/fal-platform.md +22 -0
- package/merged-commands/fal-upscale.md +22 -0
- package/merged-commands/fal-workflow.md +22 -0
- package/merged-commands/fastapi-expert.md +93 -0
- package/merged-commands/fastapi-pro.md +192 -0
- package/merged-commands/fastapi-router.md +52 -0
- package/merged-commands/fastapi-templates.md +32 -0
- package/merged-commands/feature-forge.md +90 -0
- package/merged-commands/ffuf-claude-skill.md +22 -0
- package/merged-commands/file-organizer.md +250 -0
- package/merged-commands/file-path-traversal.md +486 -0
- package/merged-commands/file-uploads.md +22 -0
- package/merged-commands/find-bugs.md +86 -0
- package/merged-commands/fine-tuning-expert.md +98 -0
- package/merged-commands/finishing-a-development-branch.md +200 -0
- package/merged-commands/firebase.md +56 -0
- package/merged-commands/firecrawl-scraper.md +37 -0
- package/merged-commands/firmware-analyst.md +320 -0
- package/merged-commands/fix-review.md +53 -0
- package/merged-commands/fixing.md +72 -0
- package/merged-commands/flutter-expert.md +200 -0
- package/merged-commands/form-cro.md +441 -0
- package/merged-commands/foundry-iq-agent.md +15 -0
- package/merged-commands/foundry-iq-python.md +275 -0
- package/merged-commands/foundry-nextgen-frontend.md +555 -0
- package/merged-commands/foundry-sdk-python.md +290 -0
- package/merged-commands/fp-ts-errors.md +856 -0
- package/merged-commands/fp-ts-pragmatic.md +598 -0
- package/merged-commands/fp-ts-react.md +796 -0
- package/merged-commands/framework-migration-code-migrate.md +48 -0
- package/merged-commands/framework-migration-deps-upgrade.md +48 -0
- package/merged-commands/framework-migration-legacy-modernize.md +132 -0
- package/merged-commands/free-tool-strategy.md +576 -0
- package/merged-commands/frontend-design.md +272 -0
- package/merged-commands/frontend-dev-guidelines.md +359 -0
- package/merged-commands/frontend-developer.md +171 -0
- package/merged-commands/frontend-development.md +399 -0
- package/merged-commands/frontend-mobile-development-component-scaffold.md +403 -0
- package/merged-commands/frontend-mobile-security-xss-scan.md +322 -0
- package/merged-commands/frontend-security-coder.md +170 -0
- package/merged-commands/frontend-slides.md +770 -0
- package/merged-commands/full-stack-orchestration-full-stack-feature.md +135 -0
- package/merged-commands/fullstack-guardian.md +99 -0
- package/merged-commands/game-developer.md +94 -0
- package/merged-commands/game-development.md +167 -0
- package/merged-commands/gcp-cloud-run.md +288 -0
- package/merged-commands/gdpr-data-handling.md +33 -0
- package/merged-commands/geo-fundamentals.md +156 -0
- package/merged-commands/git-advanced-workflows.md +412 -0
- package/merged-commands/git-pr-workflows-git-workflow.md +140 -0
- package/merged-commands/git-pr-workflows-onboard.md +416 -0
- package/merged-commands/git-pr-workflows-pr-enhance.md +48 -0
- package/merged-commands/git-pushing.md +33 -0
- package/merged-commands/github-actions-templates.md +345 -0
- package/merged-commands/github-workflow-automation.md +846 -0
- package/merged-commands/gitlab-ci-patterns.md +283 -0
- package/merged-commands/gitops-workflow.md +303 -0
- package/merged-commands/go-concurrency-patterns.md +33 -0
- package/merged-commands/godot-gdscript-patterns.md +33 -0
- package/merged-commands/golang-pro.md +179 -0
- package/merged-commands/google-adk-python.md +243 -0
- package/merged-commands/grafana-dashboards.md +381 -0
- package/merged-commands/graphql-architect.md +182 -0
- package/merged-commands/graphql.md +68 -0
- package/merged-commands/haskell-pro.md +56 -0
- package/merged-commands/helm-chart-scaffolding.md +34 -0
- package/merged-commands/hr-pro.md +126 -0
- package/merged-commands/html-injection-testing.md +498 -0
- package/merged-commands/hubspot-integration.md +42 -0
- package/merged-commands/hugging-face-cli.md +198 -0
- package/merged-commands/hugging-face-jobs.md +1038 -0
- package/merged-commands/hybrid-cloud-architect.md +168 -0
- package/merged-commands/hybrid-cloud-networking.md +238 -0
- package/merged-commands/hybrid-search-implementation.md +32 -0
- package/merged-commands/i18n-localization.md +154 -0
- package/merged-commands/idor-testing.md +442 -0
- package/merged-commands/image-enhancer.md +99 -0
- package/merged-commands/imagen.md +77 -0
- package/merged-commands/incident-responder.md +213 -0
- package/merged-commands/incident-response-incident-response.md +168 -0
- package/merged-commands/incident-response-smart-fix.md +29 -0
- package/merged-commands/incident-runbook-templates.md +395 -0
- package/merged-commands/infinite-gratitude.md +26 -0
- package/merged-commands/inngest.md +55 -0
- package/merged-commands/interactive-portfolio.md +223 -0
- package/merged-commands/internal-comms-anthropic.md +32 -0
- package/merged-commands/internal-comms-community.md +32 -0
- package/merged-commands/internal-comms.md +32 -0
- package/merged-commands/invoice-organizer.md +446 -0
- package/merged-commands/ios-developer.md +219 -0
- package/merged-commands/issue-creator.md +137 -0
- package/merged-commands/istio-traffic-management.md +337 -0
- package/merged-commands/iterate-pr.md +150 -0
- package/merged-commands/java-architect.md +95 -0
- package/merged-commands/java-pro.md +177 -0
- package/merged-commands/javascript-mastery.md +645 -0
- package/merged-commands/javascript-pro.md +57 -0
- package/merged-commands/javascript-testing-patterns.md +35 -0
- package/merged-commands/javascript-typescript-typescript-scaffold.md +361 -0
- package/merged-commands/javascript-typescript.md +142 -0
- package/merged-commands/jira-issues.md +181 -0
- package/merged-commands/job-application.md +90 -0
- package/merged-commands/julia-pro.md +209 -0
- package/merged-commands/k8s-manifest-generator.md +35 -0
- package/merged-commands/k8s-security-policies.md +346 -0
- package/merged-commands/kaizen.md +730 -0
- package/merged-commands/kotlin-specialist.md +94 -0
- package/merged-commands/kpi-dashboard-design.md +440 -0
- package/merged-commands/kubernetes-architect.md +170 -0
- package/merged-commands/kubernetes-specialist.md +117 -0
- package/merged-commands/langchain-architecture.md +350 -0
- package/merged-commands/langfuse.md +238 -0
- package/merged-commands/langgraph.md +287 -0
- package/merged-commands/laravel-specialist.md +101 -0
- package/merged-commands/last30days.md +421 -0
- package/merged-commands/launch-strategy.md +344 -0
- package/merged-commands/lead-research-assistant.md +199 -0
- package/merged-commands/learn.md +476 -0
- package/merged-commands/legacy-modernizer.md +53 -0
- package/merged-commands/legal-advisor.md +70 -0
- package/merged-commands/linear-claude-skill.md +543 -0
- package/merged-commands/linkerd-patterns.md +321 -0
- package/merged-commands/lint-and-validate.md +45 -0
- package/merged-commands/linux-privilege-escalation.md +504 -0
- package/merged-commands/linux-shell-scripting.md +504 -0
- package/merged-commands/llm-app-patterns.md +760 -0
- package/merged-commands/llm-application-dev-ai-assistant.md +35 -0
- package/merged-commands/llm-application-dev-langchain-agent.md +246 -0
- package/merged-commands/llm-application-dev-prompt-optimize.md +37 -0
- package/merged-commands/llm-application-dev.md +216 -0
- package/merged-commands/llm-evaluation.md +483 -0
- package/merged-commands/loki-mode.md +721 -0
- package/merged-commands/machine-learning-ops-ml-pipeline.md +314 -0
- package/merged-commands/makepad-skills.md +22 -0
- package/merged-commands/malware-analyst.md +247 -0
- package/merged-commands/markdown-novel-viewer.md +281 -0
- package/merged-commands/market-sizing-analysis.md +425 -0
- package/merged-commands/marketing-ideas.md +221 -0
- package/merged-commands/marketing-psychology.md +255 -0
- package/merged-commands/mcp-builder.md +236 -0
- package/merged-commands/mcp-developer.md +94 -0
- package/merged-commands/mcp-management.md +209 -0
- package/merged-commands/media-processing.md +358 -0
- package/merged-commands/meeting-insights-analyzer.md +327 -0
- package/merged-commands/memory-forensics.md +491 -0
- package/merged-commands/memory-safety-patterns.md +33 -0
- package/merged-commands/memory-systems.md +228 -0
- package/merged-commands/mermaid-expert.md +59 -0
- package/merged-commands/mermaidjs-v11.md +115 -0
- package/merged-commands/metasploit-framework.md +478 -0
- package/merged-commands/micro-saas-launcher.md +212 -0
- package/merged-commands/microservices-architect.md +102 -0
- package/merged-commands/microservices-patterns.md +35 -0
- package/merged-commands/minecraft-bukkit-pro.md +126 -0
- package/merged-commands/ml-engineer.md +168 -0
- package/merged-commands/ml-pipeline-workflow.md +257 -0
- package/merged-commands/ml-pipeline.md +111 -0
- package/merged-commands/mlops-engineer.md +219 -0
- package/merged-commands/mobile-design.md +284 -0
- package/merged-commands/mobile-developer.md +205 -0
- package/merged-commands/mobile-development.md +212 -0
- package/merged-commands/mobile-security-coder.md +184 -0
- package/merged-commands/modern-javascript-patterns.md +35 -0
- package/merged-commands/monitoring-expert.md +92 -0
- package/merged-commands/monorepo-architect.md +61 -0
- package/merged-commands/monorepo-management.md +35 -0
- package/merged-commands/moodle-external-api-development.md +597 -0
- package/merged-commands/mtls-configuration.md +359 -0
- package/merged-commands/multi-agent-brainstorming.md +256 -0
- package/merged-commands/multi-agent-patterns.md +262 -0
- package/merged-commands/multi-cloud-architecture.md +189 -0
- package/merged-commands/multi-platform-apps-multi-platform.md +203 -0
- package/merged-commands/n8n-code-python.md +750 -0
- package/merged-commands/n8n-mcp-tools-expert.md +654 -0
- package/merged-commands/n8n-node-configuration.md +796 -0
- package/merged-commands/nanobanana-ppt-skills.md +22 -0
- package/merged-commands/neon-postgres.md +56 -0
- package/merged-commands/nestjs-expert.md +552 -0
- package/merged-commands/network-101.md +342 -0
- package/merged-commands/network-engineer.md +169 -0
- package/merged-commands/nextjs-app-router-patterns.md +33 -0
- package/merged-commands/nextjs-best-practices.md +203 -0
- package/merged-commands/nextjs-developer.md +97 -0
- package/merged-commands/nextjs-supabase-auth.md +56 -0
- package/merged-commands/nft-standards.md +395 -0
- package/merged-commands/nodejs-backend-patterns.md +35 -0
- package/merged-commands/nodejs-best-practices.md +333 -0
- package/merged-commands/nosql-expert.md +111 -0
- package/merged-commands/notebooklm-skill.md +269 -0
- package/merged-commands/notebooklm.md +269 -0
- package/merged-commands/notion-template-business.md +216 -0
- package/merged-commands/nx-workspace-patterns.md +464 -0
- package/merged-commands/observability-engineer.md +237 -0
- package/merged-commands/observability-monitoring-monitor-setup.md +48 -0
- package/merged-commands/observability-monitoring-slo-implement.md +43 -0
- package/merged-commands/observe-whatsapp.md +109 -0
- package/merged-commands/obsidian-clipper-template-creator.md +64 -0
- package/merged-commands/on-call-handoff-patterns.md +453 -0
- package/merged-commands/onboarding-cro.md +433 -0
- package/merged-commands/openapi-spec-generation.md +33 -0
- package/merged-commands/page-cro.md +343 -0
- package/merged-commands/paid-ads.md +551 -0
- package/merged-commands/pandas-pro.md +96 -0
- package/merged-commands/parallel-agents.md +175 -0
- package/merged-commands/payment-integration.md +77 -0
- package/merged-commands/paypal-integration.md +479 -0
- package/merged-commands/paywall-upgrade-cro.md +570 -0
- package/merged-commands/pci-compliance.md +478 -0
- package/merged-commands/pdf-official.md +294 -0
- package/merged-commands/pdf.md +294 -0
- package/merged-commands/pentest-checklist.md +334 -0
- package/merged-commands/pentest-commands.md +438 -0
- package/merged-commands/performance-engineer.md +180 -0
- package/merged-commands/performance-profiling.md +143 -0
- package/merged-commands/performance-testing-review-ai-review.md +450 -0
- package/merged-commands/performance-testing-review-multi-agent-review.md +216 -0
- package/merged-commands/personal-tool-builder.md +289 -0
- package/merged-commands/php-pro.md +63 -0
- package/merged-commands/plaid-fintech.md +50 -0
- package/merged-commands/plan-writing.md +152 -0
- package/merged-commands/planning-with-files.md +211 -0
- package/merged-commands/planning.md +95 -0
- package/merged-commands/plans-kanban.md +166 -0
- package/merged-commands/playwright-expert.md +87 -0
- package/merged-commands/playwright-skill.md +453 -0
- package/merged-commands/podcast-generation.md +121 -0
- package/merged-commands/popup-cro.md +346 -0
- package/merged-commands/posix-shell-pro.md +304 -0
- package/merged-commands/postgres-best-practices.md +57 -0
- package/merged-commands/postgres-pro.md +98 -0
- package/merged-commands/postgresql.md +230 -0
- package/merged-commands/postmortem-writing.md +386 -0
- package/merged-commands/powershell-windows.md +167 -0
- package/merged-commands/pptx-official.md +484 -0
- package/merged-commands/pptx.md +484 -0
- package/merged-commands/pricing-strategy.md +356 -0
- package/merged-commands/prisma-expert.md +355 -0
- package/merged-commands/privilege-escalation-methods.md +333 -0
- package/merged-commands/problem-solving.md +96 -0
- package/merged-commands/product-manager-toolkit.md +351 -0
- package/merged-commands/product-strategist.md +26 -0
- package/merged-commands/production-code-audit.md +540 -0
- package/merged-commands/programmatic-seo.md +351 -0
- package/merged-commands/projection-patterns.md +33 -0
- package/merged-commands/prometheus-configuration.md +404 -0
- package/merged-commands/prompt-caching.md +61 -0
- package/merged-commands/prompt-engineer.md +272 -0
- package/merged-commands/prompt-engineering-patterns.md +213 -0
- package/merged-commands/prompt-engineering.md +171 -0
- package/merged-commands/prompt-library.md +322 -0
- package/merged-commands/protocol-reverse-engineering.md +29 -0
- package/merged-commands/pydantic-models.md +58 -0
- package/merged-commands/pypict-skill.md +22 -0
- package/merged-commands/python-development-python-scaffold.md +331 -0
- package/merged-commands/python-development.md +139 -0
- package/merged-commands/python-packaging.md +36 -0
- package/merged-commands/python-patterns.md +441 -0
- package/merged-commands/python-performance-optimization.md +36 -0
- package/merged-commands/python-pro.md +158 -0
- package/merged-commands/python-testing-patterns.md +37 -0
- package/merged-commands/qa-regression.md +337 -0
- package/merged-commands/quant-analyst.md +53 -0
- package/merged-commands/radix-ui-design-system.md +847 -0
- package/merged-commands/raffle-winner-picker.md +159 -0
- package/merged-commands/rag-architect.md +100 -0
- package/merged-commands/rag-engineer.md +90 -0
- package/merged-commands/rag-implementation.md +421 -0
- package/merged-commands/rails-expert.md +97 -0
- package/merged-commands/react-best-practices.md +121 -0
- package/merged-commands/react-expert.md +98 -0
- package/merged-commands/react-flow-node.md +66 -0
- package/merged-commands/react-modernization.md +34 -0
- package/merged-commands/react-native-architecture.md +33 -0
- package/merged-commands/react-native-expert.md +88 -0
- package/merged-commands/react-patterns.md +198 -0
- package/merged-commands/react-state-management.md +441 -0
- package/merged-commands/react-ui-patterns.md +289 -0
- package/merged-commands/readme.md +775 -0
- package/merged-commands/receiving-code-review.md +213 -0
- package/merged-commands/red-team-tactics.md +199 -0
- package/merged-commands/red-team-tools.md +310 -0
- package/merged-commands/reference-builder.md +188 -0
- package/merged-commands/referral-program.md +602 -0
- package/merged-commands/remotion-best-practices.md +45 -0
- package/merged-commands/repomix.md +275 -0
- package/merged-commands/requesting-code-review.md +105 -0
- package/merged-commands/research-engineer.md +135 -0
- package/merged-commands/research.md +191 -0
- package/merged-commands/reverse-engineer.md +173 -0
- package/merged-commands/risk-manager.md +61 -0
- package/merged-commands/risk-metrics-calculation.md +33 -0
- package/merged-commands/ruby-pro.md +56 -0
- package/merged-commands/rust-async-patterns.md +33 -0
- package/merged-commands/rust-engineer.md +96 -0
- package/merged-commands/rust-pro.md +178 -0
- package/merged-commands/saga-orchestration.md +496 -0
- package/merged-commands/sales-automator.md +55 -0
- package/merged-commands/salesforce-developer.md +105 -0
- package/merged-commands/salesforce-development.md +51 -0
- package/merged-commands/sast-configuration.md +212 -0
- package/merged-commands/scala-pro.md +82 -0
- package/merged-commands/scanning-tools.md +589 -0
- package/merged-commands/schema-markup.md +360 -0
- package/merged-commands/screen-reader-testing.md +33 -0
- package/merged-commands/screenshots.md +401 -0
- package/merged-commands/scroll-experience.md +263 -0
- package/merged-commands/search-specialist.md +80 -0
- package/merged-commands/secrets-management.md +364 -0
- package/merged-commands/secure-code-guardian.md +93 -0
- package/merged-commands/security-auditor.md +169 -0
- package/merged-commands/security-bluebook-builder.md +22 -0
- package/merged-commands/security-compliance-compliance-check.md +55 -0
- package/merged-commands/security-requirement-extraction.md +33 -0
- package/merged-commands/security-reviewer.md +94 -0
- package/merged-commands/security-scanning-security-dependencies.md +43 -0
- package/merged-commands/security-scanning-security-hardening.md +147 -0
- package/merged-commands/security-scanning-security-sast.md +495 -0
- package/merged-commands/segment-cdp.md +50 -0
- package/merged-commands/senior-architect.md +209 -0
- package/merged-commands/senior-backend.md +209 -0
- package/merged-commands/senior-computer-vision.md +226 -0
- package/merged-commands/senior-data-engineer.md +226 -0
- package/merged-commands/senior-data-scientist.md +226 -0
- package/merged-commands/senior-devops.md +209 -0
- package/merged-commands/senior-frontend.md +209 -0
- package/merged-commands/senior-fullstack.md +209 -0
- package/merged-commands/senior-ml-engineer.md +226 -0
- package/merged-commands/senior-prompt-engineer.md +226 -0
- package/merged-commands/senior-qa.md +209 -0
- package/merged-commands/senior-secops.md +209 -0
- package/merged-commands/senior-security.md +209 -0
- package/merged-commands/seo-audit.md +487 -0
- package/merged-commands/seo-authority-builder.md +136 -0
- package/merged-commands/seo-cannibalization-detector.md +123 -0
- package/merged-commands/seo-content-auditor.md +83 -0
- package/merged-commands/seo-content-planner.md +108 -0
- package/merged-commands/seo-content-refresher.md +118 -0
- package/merged-commands/seo-content-writer.md +96 -0
- package/merged-commands/seo-fundamentals.md +173 -0
- package/merged-commands/seo-keyword-strategist.md +95 -0
- package/merged-commands/seo-meta-optimizer.md +92 -0
- package/merged-commands/seo-snippet-hunter.md +114 -0
- package/merged-commands/seo-structure-architect.md +108 -0
- package/merged-commands/sequential-thinking.md +94 -0
- package/merged-commands/server-management.md +161 -0
- package/merged-commands/service-mesh-expert.md +58 -0
- package/merged-commands/service-mesh-observability.md +395 -0
- package/merged-commands/sharp-edges.md +70 -0
- package/merged-commands/shellcheck-configuration.md +466 -0
- package/merged-commands/shodan-reconnaissance.md +503 -0
- package/merged-commands/shopify-apps.md +42 -0
- package/merged-commands/shopify-development.md +366 -0
- package/merged-commands/shopify-expert.md +102 -0
- package/merged-commands/signup-flow-cro.md +355 -0
- package/merged-commands/similarity-search-patterns.md +33 -0
- package/merged-commands/skill-creator.md +356 -0
- package/merged-commands/skill-developer.md +426 -0
- package/merged-commands/skill-rails-upgrade.md +408 -0
- package/merged-commands/skill-seekers.md +22 -0
- package/merged-commands/skill-share.md +80 -0
- package/merged-commands/slack-bot-builder.md +264 -0
- package/merged-commands/slack-gif-creator.md +254 -0
- package/merged-commands/slo-implementation.md +341 -0
- package/merged-commands/smtp-penetration-testing.md +500 -0
- package/merged-commands/social-content.md +807 -0
- package/merged-commands/software-architecture.md +75 -0
- package/merged-commands/solidity-security.md +34 -0
- package/merged-commands/spark-engineer.md +100 -0
- package/merged-commands/spark-optimization.md +427 -0
- package/merged-commands/spec-miner.md +88 -0
- package/merged-commands/spring-boot-engineer.md +104 -0
- package/merged-commands/sql-injection-testing.md +448 -0
- package/merged-commands/sql-optimization-patterns.md +35 -0
- package/merged-commands/sql-pro.md +173 -0
- package/merged-commands/sqlmap-database-pentesting.md +400 -0
- package/merged-commands/sre-engineer.md +98 -0
- package/merged-commands/ssh-penetration-testing.md +488 -0
- package/merged-commands/startup-analyst.md +328 -0
- package/merged-commands/startup-business-analyst-business-case.md +487 -0
- package/merged-commands/startup-business-analyst-financial-projections.md +353 -0
- package/merged-commands/startup-business-analyst-market-opportunity.md +240 -0
- package/merged-commands/startup-financial-modeling.md +467 -0
- package/merged-commands/startup-metrics-framework.md +34 -0
- package/merged-commands/stitch-ui-design.md +378 -0
- package/merged-commands/stride-analysis-patterns.md +33 -0
- package/merged-commands/stripe-integration.md +454 -0
- package/merged-commands/subagent-driven-development.md +240 -0
- package/merged-commands/superpowers-lab.md +22 -0
- package/merged-commands/swift-expert.md +94 -0
- package/merged-commands/swiftui-expert-skill.md +275 -0
- package/merged-commands/systematic-debugging.md +296 -0
- package/merged-commands/systems-programming-rust-project.md +440 -0
- package/merged-commands/tailwind-design-system.md +33 -0
- package/merged-commands/tailwind-patterns.md +269 -0
- package/merged-commands/tavily-web.md +36 -0
- package/merged-commands/tdd-orchestrator.md +205 -0
- package/merged-commands/tdd-workflow.md +149 -0
- package/merged-commands/tdd-workflows-tdd-cycle.md +221 -0
- package/merged-commands/tdd-workflows-tdd-green.md +73 -0
- package/merged-commands/tdd-workflows-tdd-red.md +164 -0
- package/merged-commands/tdd-workflows-tdd-refactor.md +187 -0
- package/merged-commands/team-collaboration-issue.md +37 -0
- package/merged-commands/team-collaboration-standup-notes.md +44 -0
- package/merged-commands/team-composition-analysis.md +413 -0
- package/merged-commands/telegram-bot-builder.md +254 -0
- package/merged-commands/telegram-mini-app.md +279 -0
- package/merged-commands/template-skill.md +6 -0
- package/merged-commands/temporal-python-pro.md +370 -0
- package/merged-commands/temporal-python-testing.md +170 -0
- package/merged-commands/terraform-engineer.md +97 -0
- package/merged-commands/terraform-module-library.md +261 -0
- package/merged-commands/terraform-skill.md +517 -0
- package/merged-commands/terraform-specialist.md +166 -0
- package/merged-commands/test-automator.md +224 -0
- package/merged-commands/test-driven-development.md +371 -0
- package/merged-commands/test-fixing.md +119 -0
- package/merged-commands/test-master.md +104 -0
- package/merged-commands/testing-patterns.md +259 -0
- package/merged-commands/theme-factory.md +59 -0
- package/merged-commands/threat-mitigation-mapping.md +33 -0
- package/merged-commands/threat-modeling-expert.md +60 -0
- package/merged-commands/threejs-skills.md +22 -0
- package/merged-commands/threejs.md +89 -0
- package/merged-commands/tool-design.md +318 -0
- package/merged-commands/top-web-vulnerabilities.md +543 -0
- package/merged-commands/track-management.md +38 -0
- package/merged-commands/trigger-dev.md +67 -0
- package/merged-commands/turborepo-caching.md +419 -0
- package/merged-commands/tutorial-engineer.md +139 -0
- package/merged-commands/twilio-communications.md +295 -0
- package/merged-commands/typescript-advanced-types.md +35 -0
- package/merged-commands/typescript-expert.md +429 -0
- package/merged-commands/typescript-pro.md +55 -0
- package/merged-commands/ui-design-system.md +32 -0
- package/merged-commands/ui-skills.md +22 -0
- package/merged-commands/ui-styling.md +321 -0
- package/merged-commands/ui-ux-designer.md +209 -0
- package/merged-commands/ui-ux-pro-max.md +351 -0
- package/merged-commands/ui-visual-validator.md +214 -0
- package/merged-commands/unit-testing-test-generate.md +319 -0
- package/merged-commands/unity-developer.md +230 -0
- package/merged-commands/unity-ecs-patterns.md +33 -0
- package/merged-commands/unreal-engine-cpp-pro.md +114 -0
- package/merged-commands/upgrading-expo.md +118 -0
- package/merged-commands/upstash-qstash.md +68 -0
- package/merged-commands/using-git-worktrees.md +217 -0
- package/merged-commands/using-neon.md +84 -0
- package/merged-commands/using-superpowers.md +87 -0
- package/merged-commands/uv-package-manager.md +37 -0
- package/merged-commands/ux-researcher-designer.md +30 -0
- package/merged-commands/varlock-claude-skill.md +22 -0
- package/merged-commands/vector-database-engineer.md +60 -0
- package/merged-commands/vector-index-tuning.md +42 -0
- package/merged-commands/vercel-deploy-claimable.md +120 -0
- package/merged-commands/vercel-deploy.md +22 -0
- package/merged-commands/vercel-deployment.md +79 -0
- package/merged-commands/verification-before-completion.md +139 -0
- package/merged-commands/vexor.md +22 -0
- package/merged-commands/video-downloader.md +106 -0
- package/merged-commands/viral-generator-builder.md +199 -0
- package/merged-commands/voice-agents.md +68 -0
- package/merged-commands/voice-ai-development.md +302 -0
- package/merged-commands/voice-ai-engine-development.md +721 -0
- package/merged-commands/vue-expert-js.md +91 -0
- package/merged-commands/vue-expert.md +374 -0
- package/merged-commands/vulnerability-scanner.md +276 -0
- package/merged-commands/wcag-audit-patterns.md +41 -0
- package/merged-commands/web-artifacts-builder.md +74 -0
- package/merged-commands/web-design-guidelines.md +36 -0
- package/merged-commands/web-frameworks.md +324 -0
- package/merged-commands/web-performance-optimization.md +646 -0
- package/merged-commands/web3-testing.md +427 -0
- package/merged-commands/webapp-testing.md +96 -0
- package/merged-commands/websocket-engineer.md +96 -0
- package/merged-commands/windows-privilege-escalation.md +496 -0
- package/merged-commands/wireshark-analysis.md +497 -0
- package/merged-commands/wordpress-penetration-testing.md +485 -0
- package/merged-commands/wordpress-pro.md +105 -0
- package/merged-commands/workflow-automation.md +68 -0
- package/merged-commands/workflow-orchestration-patterns.md +333 -0
- package/merged-commands/workflow-patterns.md +38 -0
- package/merged-commands/writing-plans.md +116 -0
- package/merged-commands/writing-skills.md +125 -0
- package/merged-commands/x-article-publisher-skill.md +22 -0
- package/merged-commands/xlsx-official.md +289 -0
- package/merged-commands/xlsx.md +289 -0
- package/merged-commands/xss-html-injection.md +499 -0
- package/merged-commands/youtube-transcript.md +415 -0
- package/merged-commands/zapier-make-patterns.md +67 -0
- package/merged-commands/zustand-store.md +68 -0
- package/package.json +1 -1
- package/scripts/merge-commands.js +21 -0
|
@@ -0,0 +1,757 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aws-serverless-eda
|
|
3
|
+
description: 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.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AWS Serverless & Event-Driven Architecture
|
|
7
|
+
|
|
8
|
+
This skill provides comprehensive guidance for building serverless applications and event-driven architectures on AWS based on Well-Architected Framework principles.
|
|
9
|
+
|
|
10
|
+
## AWS Documentation Requirement
|
|
11
|
+
|
|
12
|
+
**CRITICAL**: This skill requires AWS MCP tools for accurate, up-to-date AWS information.
|
|
13
|
+
|
|
14
|
+
### Before Answering AWS Questions
|
|
15
|
+
|
|
16
|
+
1. **Always verify** using AWS MCP tools (if available):
|
|
17
|
+
- `mcp__aws-mcp__aws___search_documentation` or `mcp__*awsdocs*__aws___search_documentation` - Search AWS docs
|
|
18
|
+
- `mcp__aws-mcp__aws___read_documentation` or `mcp__*awsdocs*__aws___read_documentation` - Read specific pages
|
|
19
|
+
- `mcp__aws-mcp__aws___get_regional_availability` - Check service availability
|
|
20
|
+
|
|
21
|
+
2. **If AWS MCP tools are unavailable**:
|
|
22
|
+
- Guide user to configure AWS MCP: See [AWS MCP Setup Guide](../../docs/aws-mcp-setup.md)
|
|
23
|
+
- Help determine which option fits their environment:
|
|
24
|
+
- Has uvx + AWS credentials → Full AWS MCP Server
|
|
25
|
+
- No Python/credentials → AWS Documentation MCP (no auth)
|
|
26
|
+
- If cannot determine → Ask user which option to use
|
|
27
|
+
|
|
28
|
+
## Serverless MCP Servers
|
|
29
|
+
|
|
30
|
+
This skill can leverage serverless-specific MCP servers for enhanced development workflows:
|
|
31
|
+
|
|
32
|
+
### AWS Serverless MCP Server
|
|
33
|
+
**Purpose**: Complete serverless application lifecycle with SAM CLI
|
|
34
|
+
- Initialize new serverless applications
|
|
35
|
+
- Deploy serverless applications
|
|
36
|
+
- Test Lambda functions locally
|
|
37
|
+
- Generate SAM templates
|
|
38
|
+
- Manage serverless application lifecycle
|
|
39
|
+
|
|
40
|
+
### AWS Lambda Tool MCP Server
|
|
41
|
+
**Purpose**: Execute Lambda functions as tools
|
|
42
|
+
- Invoke Lambda functions directly
|
|
43
|
+
- Test Lambda integrations
|
|
44
|
+
- Execute workflows requiring private resource access
|
|
45
|
+
- Run Lambda-based automation
|
|
46
|
+
|
|
47
|
+
### AWS Step Functions MCP Server
|
|
48
|
+
**Purpose**: Execute complex workflows and orchestration
|
|
49
|
+
- Create and manage state machines
|
|
50
|
+
- Execute workflow orchestrations
|
|
51
|
+
- Handle distributed transactions
|
|
52
|
+
- Implement saga patterns
|
|
53
|
+
- Coordinate microservices
|
|
54
|
+
|
|
55
|
+
### Amazon SNS/SQS MCP Server
|
|
56
|
+
**Purpose**: Event-driven messaging and queue management
|
|
57
|
+
- Publish messages to SNS topics
|
|
58
|
+
- Send/receive messages from SQS queues
|
|
59
|
+
- Manage event-driven communication
|
|
60
|
+
- Implement pub/sub patterns
|
|
61
|
+
- Handle asynchronous processing
|
|
62
|
+
|
|
63
|
+
## When to Use This Skill
|
|
64
|
+
|
|
65
|
+
Use this skill when:
|
|
66
|
+
- Building serverless applications with Lambda
|
|
67
|
+
- Designing event-driven architectures
|
|
68
|
+
- Implementing microservices patterns
|
|
69
|
+
- Creating asynchronous processing workflows
|
|
70
|
+
- Orchestrating multi-service transactions
|
|
71
|
+
- Building real-time data processing pipelines
|
|
72
|
+
- Implementing saga patterns for distributed transactions
|
|
73
|
+
- Designing for scale and resilience
|
|
74
|
+
|
|
75
|
+
## AWS Well-Architected Serverless Design Principles
|
|
76
|
+
|
|
77
|
+
### 1. Speedy, Simple, Singular
|
|
78
|
+
|
|
79
|
+
**Functions should be concise and single-purpose**
|
|
80
|
+
|
|
81
|
+
```typescript
|
|
82
|
+
// ✅ GOOD - Single purpose, focused function
|
|
83
|
+
export const processOrder = async (event: OrderEvent) => {
|
|
84
|
+
// Only handles order processing
|
|
85
|
+
const order = await validateOrder(event);
|
|
86
|
+
await saveOrder(order);
|
|
87
|
+
await publishOrderCreatedEvent(order);
|
|
88
|
+
return { statusCode: 200, body: JSON.stringify({ orderId: order.id }) };
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
// ❌ BAD - Function does too much
|
|
92
|
+
export const handleEverything = async (event: any) => {
|
|
93
|
+
// Handles orders, inventory, payments, shipping...
|
|
94
|
+
// Too many responsibilities
|
|
95
|
+
};
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**Keep functions environmentally efficient and cost-aware**:
|
|
99
|
+
- Minimize cold start times
|
|
100
|
+
- Optimize memory allocation
|
|
101
|
+
- Use provisioned concurrency only when needed
|
|
102
|
+
- Leverage connection reuse
|
|
103
|
+
|
|
104
|
+
### 2. Think Concurrent Requests, Not Total Requests
|
|
105
|
+
|
|
106
|
+
**Design for concurrency, not volume**
|
|
107
|
+
|
|
108
|
+
Lambda scales horizontally - design considerations should focus on:
|
|
109
|
+
- Concurrent execution limits
|
|
110
|
+
- Downstream service throttling
|
|
111
|
+
- Shared resource contention
|
|
112
|
+
- Connection pool sizing
|
|
113
|
+
|
|
114
|
+
```typescript
|
|
115
|
+
// Consider concurrent Lambda executions accessing DynamoDB
|
|
116
|
+
const table = new dynamodb.Table(this, 'Table', {
|
|
117
|
+
billingMode: dynamodb.BillingMode.PAY_PER_REQUEST, // Auto-scales with load
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
// Or with provisioned capacity + auto-scaling
|
|
121
|
+
const table = new dynamodb.Table(this, 'Table', {
|
|
122
|
+
billingMode: dynamodb.BillingMode.PROVISIONED,
|
|
123
|
+
readCapacity: 5,
|
|
124
|
+
writeCapacity: 5,
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
// Enable auto-scaling for concurrent load
|
|
128
|
+
table.autoScaleReadCapacity({ minCapacity: 5, maxCapacity: 100 });
|
|
129
|
+
table.autoScaleWriteCapacity({ minCapacity: 5, maxCapacity: 100 });
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### 3. Share Nothing
|
|
133
|
+
|
|
134
|
+
**Function runtime environments are short-lived**
|
|
135
|
+
|
|
136
|
+
```typescript
|
|
137
|
+
// ❌ BAD - Relying on local file system
|
|
138
|
+
export const handler = async (event: any) => {
|
|
139
|
+
fs.writeFileSync('/tmp/data.json', JSON.stringify(data)); // Lost after execution
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
// ✅ GOOD - Use persistent storage
|
|
143
|
+
export const handler = async (event: any) => {
|
|
144
|
+
await s3.putObject({
|
|
145
|
+
Bucket: process.env.BUCKET_NAME,
|
|
146
|
+
Key: 'data.json',
|
|
147
|
+
Body: JSON.stringify(data),
|
|
148
|
+
});
|
|
149
|
+
};
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
**State management**:
|
|
153
|
+
- Use DynamoDB for persistent state
|
|
154
|
+
- Use Step Functions for workflow state
|
|
155
|
+
- Use ElastiCache for session state
|
|
156
|
+
- Use S3 for file storage
|
|
157
|
+
|
|
158
|
+
### 4. Assume No Hardware Affinity
|
|
159
|
+
|
|
160
|
+
**Applications must be hardware-agnostic**
|
|
161
|
+
|
|
162
|
+
Infrastructure can change without notice:
|
|
163
|
+
- Lambda functions can run on different hardware
|
|
164
|
+
- Container instances can be replaced
|
|
165
|
+
- No assumption about underlying infrastructure
|
|
166
|
+
|
|
167
|
+
**Design for portability**:
|
|
168
|
+
- Use environment variables for configuration
|
|
169
|
+
- Avoid hardware-specific optimizations
|
|
170
|
+
- Test across different environments
|
|
171
|
+
|
|
172
|
+
### 5. Orchestrate with State Machines, Not Function Chaining
|
|
173
|
+
|
|
174
|
+
**Use Step Functions for orchestration**
|
|
175
|
+
|
|
176
|
+
```typescript
|
|
177
|
+
// ❌ BAD - Lambda function chaining
|
|
178
|
+
export const handler1 = async (event: any) => {
|
|
179
|
+
const result = await processStep1(event);
|
|
180
|
+
await lambda.invoke({
|
|
181
|
+
FunctionName: 'handler2',
|
|
182
|
+
Payload: JSON.stringify(result),
|
|
183
|
+
});
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
// ✅ GOOD - Step Functions orchestration
|
|
187
|
+
const stateMachine = new stepfunctions.StateMachine(this, 'OrderWorkflow', {
|
|
188
|
+
definition: stepfunctions.Chain
|
|
189
|
+
.start(validateOrder)
|
|
190
|
+
.next(processPayment)
|
|
191
|
+
.next(shipOrder)
|
|
192
|
+
.next(sendConfirmation),
|
|
193
|
+
});
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
**Benefits of Step Functions**:
|
|
197
|
+
- Visual workflow representation
|
|
198
|
+
- Built-in error handling and retries
|
|
199
|
+
- Execution history and debugging
|
|
200
|
+
- Parallel and sequential execution
|
|
201
|
+
- Service integrations without code
|
|
202
|
+
|
|
203
|
+
### 6. Use Events to Trigger Transactions
|
|
204
|
+
|
|
205
|
+
**Event-driven over synchronous request/response**
|
|
206
|
+
|
|
207
|
+
```typescript
|
|
208
|
+
// Pattern: Event-driven processing
|
|
209
|
+
const bucket = new s3.Bucket(this, 'DataBucket');
|
|
210
|
+
|
|
211
|
+
bucket.addEventNotification(
|
|
212
|
+
s3.EventType.OBJECT_CREATED,
|
|
213
|
+
new s3n.LambdaDestination(processFunction),
|
|
214
|
+
{ prefix: 'uploads/' }
|
|
215
|
+
);
|
|
216
|
+
|
|
217
|
+
// Pattern: EventBridge integration
|
|
218
|
+
const rule = new events.Rule(this, 'OrderRule', {
|
|
219
|
+
eventPattern: {
|
|
220
|
+
source: ['orders'],
|
|
221
|
+
detailType: ['OrderPlaced'],
|
|
222
|
+
},
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
rule.addTarget(new targets.LambdaFunction(processOrderFunction));
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
**Benefits**:
|
|
229
|
+
- Loose coupling between services
|
|
230
|
+
- Asynchronous processing
|
|
231
|
+
- Better fault tolerance
|
|
232
|
+
- Independent scaling
|
|
233
|
+
|
|
234
|
+
### 7. Design for Failures and Duplicates
|
|
235
|
+
|
|
236
|
+
**Operations must be idempotent**
|
|
237
|
+
|
|
238
|
+
```typescript
|
|
239
|
+
// ✅ GOOD - Idempotent operation
|
|
240
|
+
export const handler = async (event: SQSEvent) => {
|
|
241
|
+
for (const record of event.Records) {
|
|
242
|
+
const orderId = JSON.parse(record.body).orderId;
|
|
243
|
+
|
|
244
|
+
// Check if already processed (idempotency)
|
|
245
|
+
const existing = await dynamodb.getItem({
|
|
246
|
+
TableName: process.env.TABLE_NAME,
|
|
247
|
+
Key: { orderId },
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
if (existing.Item) {
|
|
251
|
+
console.log('Order already processed:', orderId);
|
|
252
|
+
continue; // Skip duplicate
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
// Process order
|
|
256
|
+
await processOrder(orderId);
|
|
257
|
+
|
|
258
|
+
// Mark as processed
|
|
259
|
+
await dynamodb.putItem({
|
|
260
|
+
TableName: process.env.TABLE_NAME,
|
|
261
|
+
Item: { orderId, processedAt: Date.now() },
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
};
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
**Implement retry logic with exponential backoff**:
|
|
268
|
+
```typescript
|
|
269
|
+
async function withRetry<T>(fn: () => Promise<T>, maxRetries = 3): Promise<T> {
|
|
270
|
+
for (let i = 0; i < maxRetries; i++) {
|
|
271
|
+
try {
|
|
272
|
+
return await fn();
|
|
273
|
+
} catch (error) {
|
|
274
|
+
if (i === maxRetries - 1) throw error;
|
|
275
|
+
await new Promise(resolve => setTimeout(resolve, Math.pow(2, i) * 1000));
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
throw new Error('Max retries exceeded');
|
|
279
|
+
}
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
## Event-Driven Architecture Patterns
|
|
283
|
+
|
|
284
|
+
### Pattern 1: Event Router (EventBridge)
|
|
285
|
+
|
|
286
|
+
Use EventBridge for event routing and filtering:
|
|
287
|
+
|
|
288
|
+
```typescript
|
|
289
|
+
// Create custom event bus
|
|
290
|
+
const eventBus = new events.EventBus(this, 'AppEventBus', {
|
|
291
|
+
eventBusName: 'application-events',
|
|
292
|
+
});
|
|
293
|
+
|
|
294
|
+
// Define event schema
|
|
295
|
+
const schema = new events.Schema(this, 'OrderSchema', {
|
|
296
|
+
schemaName: 'OrderPlaced',
|
|
297
|
+
definition: events.SchemaDefinition.fromInline({
|
|
298
|
+
openapi: '3.0.0',
|
|
299
|
+
info: { version: '1.0.0', title: 'Order Events' },
|
|
300
|
+
paths: {},
|
|
301
|
+
components: {
|
|
302
|
+
schemas: {
|
|
303
|
+
OrderPlaced: {
|
|
304
|
+
type: 'object',
|
|
305
|
+
properties: {
|
|
306
|
+
orderId: { type: 'string' },
|
|
307
|
+
customerId: { type: 'string' },
|
|
308
|
+
amount: { type: 'number' },
|
|
309
|
+
},
|
|
310
|
+
},
|
|
311
|
+
},
|
|
312
|
+
},
|
|
313
|
+
}),
|
|
314
|
+
});
|
|
315
|
+
|
|
316
|
+
// Create rules for different consumers
|
|
317
|
+
new events.Rule(this, 'ProcessOrderRule', {
|
|
318
|
+
eventBus,
|
|
319
|
+
eventPattern: {
|
|
320
|
+
source: ['orders'],
|
|
321
|
+
detailType: ['OrderPlaced'],
|
|
322
|
+
},
|
|
323
|
+
targets: [new targets.LambdaFunction(processOrderFunction)],
|
|
324
|
+
});
|
|
325
|
+
|
|
326
|
+
new events.Rule(this, 'NotifyCustomerRule', {
|
|
327
|
+
eventBus,
|
|
328
|
+
eventPattern: {
|
|
329
|
+
source: ['orders'],
|
|
330
|
+
detailType: ['OrderPlaced'],
|
|
331
|
+
},
|
|
332
|
+
targets: [new targets.LambdaFunction(notifyCustomerFunction)],
|
|
333
|
+
});
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
### Pattern 2: Queue-Based Processing (SQS)
|
|
337
|
+
|
|
338
|
+
Use SQS for reliable asynchronous processing:
|
|
339
|
+
|
|
340
|
+
```typescript
|
|
341
|
+
// Standard queue for at-least-once delivery
|
|
342
|
+
const queue = new sqs.Queue(this, 'ProcessingQueue', {
|
|
343
|
+
visibilityTimeout: Duration.seconds(300),
|
|
344
|
+
retentionPeriod: Duration.days(14),
|
|
345
|
+
deadLetterQueue: {
|
|
346
|
+
queue: dlq,
|
|
347
|
+
maxReceiveCount: 3,
|
|
348
|
+
},
|
|
349
|
+
});
|
|
350
|
+
|
|
351
|
+
// FIFO queue for ordered processing
|
|
352
|
+
const fifoQueue = new sqs.Queue(this, 'OrderedQueue', {
|
|
353
|
+
fifo: true,
|
|
354
|
+
contentBasedDeduplication: true,
|
|
355
|
+
deduplicationScope: sqs.DeduplicationScope.MESSAGE_GROUP,
|
|
356
|
+
});
|
|
357
|
+
|
|
358
|
+
// Lambda consumer
|
|
359
|
+
new lambda.EventSourceMapping(this, 'QueueConsumer', {
|
|
360
|
+
target: processingFunction,
|
|
361
|
+
eventSourceArn: queue.queueArn,
|
|
362
|
+
batchSize: 10,
|
|
363
|
+
maxBatchingWindow: Duration.seconds(5),
|
|
364
|
+
});
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
### Pattern 3: Pub/Sub (SNS + SQS Fan-Out)
|
|
368
|
+
|
|
369
|
+
Implement fan-out pattern for multiple consumers:
|
|
370
|
+
|
|
371
|
+
```typescript
|
|
372
|
+
// Create SNS topic
|
|
373
|
+
const topic = new sns.Topic(this, 'OrderTopic', {
|
|
374
|
+
displayName: 'Order Events',
|
|
375
|
+
});
|
|
376
|
+
|
|
377
|
+
// Multiple SQS queues subscribe to topic
|
|
378
|
+
const inventoryQueue = new sqs.Queue(this, 'InventoryQueue');
|
|
379
|
+
const shippingQueue = new sqs.Queue(this, 'ShippingQueue');
|
|
380
|
+
const analyticsQueue = new sqs.Queue(this, 'AnalyticsQueue');
|
|
381
|
+
|
|
382
|
+
topic.addSubscription(new subscriptions.SqsSubscription(inventoryQueue));
|
|
383
|
+
topic.addSubscription(new subscriptions.SqsSubscription(shippingQueue));
|
|
384
|
+
topic.addSubscription(new subscriptions.SqsSubscription(analyticsQueue));
|
|
385
|
+
|
|
386
|
+
// Each queue has its own Lambda consumer
|
|
387
|
+
new lambda.EventSourceMapping(this, 'InventoryConsumer', {
|
|
388
|
+
target: inventoryFunction,
|
|
389
|
+
eventSourceArn: inventoryQueue.queueArn,
|
|
390
|
+
});
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
### Pattern 4: Saga Pattern with Step Functions
|
|
394
|
+
|
|
395
|
+
Implement distributed transactions:
|
|
396
|
+
|
|
397
|
+
```typescript
|
|
398
|
+
const reserveFlight = new tasks.LambdaInvoke(this, 'ReserveFlight', {
|
|
399
|
+
lambdaFunction: reserveFlightFunction,
|
|
400
|
+
outputPath: '$.Payload',
|
|
401
|
+
});
|
|
402
|
+
|
|
403
|
+
const reserveHotel = new tasks.LambdaInvoke(this, 'ReserveHotel', {
|
|
404
|
+
lambdaFunction: reserveHotelFunction,
|
|
405
|
+
outputPath: '$.Payload',
|
|
406
|
+
});
|
|
407
|
+
|
|
408
|
+
const processPayment = new tasks.LambdaInvoke(this, 'ProcessPayment', {
|
|
409
|
+
lambdaFunction: processPaymentFunction,
|
|
410
|
+
outputPath: '$.Payload',
|
|
411
|
+
});
|
|
412
|
+
|
|
413
|
+
// Compensating transactions
|
|
414
|
+
const cancelFlight = new tasks.LambdaInvoke(this, 'CancelFlight', {
|
|
415
|
+
lambdaFunction: cancelFlightFunction,
|
|
416
|
+
});
|
|
417
|
+
|
|
418
|
+
const cancelHotel = new tasks.LambdaInvoke(this, 'CancelHotel', {
|
|
419
|
+
lambdaFunction: cancelHotelFunction,
|
|
420
|
+
});
|
|
421
|
+
|
|
422
|
+
// Define saga with compensation
|
|
423
|
+
const definition = reserveFlight
|
|
424
|
+
.next(reserveHotel)
|
|
425
|
+
.next(processPayment)
|
|
426
|
+
.addCatch(cancelHotel.next(cancelFlight), {
|
|
427
|
+
resultPath: '$.error',
|
|
428
|
+
});
|
|
429
|
+
|
|
430
|
+
new stepfunctions.StateMachine(this, 'BookingStateMachine', {
|
|
431
|
+
definition,
|
|
432
|
+
timeout: Duration.minutes(5),
|
|
433
|
+
});
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
### Pattern 5: Event Sourcing
|
|
437
|
+
|
|
438
|
+
Store events as source of truth:
|
|
439
|
+
|
|
440
|
+
```typescript
|
|
441
|
+
// Event store with DynamoDB
|
|
442
|
+
const eventStore = new dynamodb.Table(this, 'EventStore', {
|
|
443
|
+
partitionKey: { name: 'aggregateId', type: dynamodb.AttributeType.STRING },
|
|
444
|
+
sortKey: { name: 'version', type: dynamodb.AttributeType.NUMBER },
|
|
445
|
+
stream: dynamodb.StreamViewType.NEW_IMAGE,
|
|
446
|
+
});
|
|
447
|
+
|
|
448
|
+
// Lambda function stores events
|
|
449
|
+
export const handleCommand = async (event: any) => {
|
|
450
|
+
const { aggregateId, eventType, eventData } = event;
|
|
451
|
+
|
|
452
|
+
// Get current version
|
|
453
|
+
const items = await dynamodb.query({
|
|
454
|
+
TableName: process.env.EVENT_STORE,
|
|
455
|
+
KeyConditionExpression: 'aggregateId = :id',
|
|
456
|
+
ExpressionAttributeValues: { ':id': aggregateId },
|
|
457
|
+
ScanIndexForward: false,
|
|
458
|
+
Limit: 1,
|
|
459
|
+
});
|
|
460
|
+
|
|
461
|
+
const nextVersion = items.Items?.[0]?.version + 1 || 1;
|
|
462
|
+
|
|
463
|
+
// Append new event
|
|
464
|
+
await dynamodb.putItem({
|
|
465
|
+
TableName: process.env.EVENT_STORE,
|
|
466
|
+
Item: {
|
|
467
|
+
aggregateId,
|
|
468
|
+
version: nextVersion,
|
|
469
|
+
eventType,
|
|
470
|
+
eventData,
|
|
471
|
+
timestamp: Date.now(),
|
|
472
|
+
},
|
|
473
|
+
});
|
|
474
|
+
};
|
|
475
|
+
|
|
476
|
+
// Projections read from event stream
|
|
477
|
+
eventStore.grantStreamRead(projectionFunction);
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
## Serverless Architecture Patterns
|
|
481
|
+
|
|
482
|
+
### Pattern 1: API-Driven Microservices
|
|
483
|
+
|
|
484
|
+
REST APIs with Lambda backend:
|
|
485
|
+
|
|
486
|
+
```typescript
|
|
487
|
+
const api = new apigateway.RestApi(this, 'Api', {
|
|
488
|
+
restApiName: 'microservices-api',
|
|
489
|
+
deployOptions: {
|
|
490
|
+
throttlingRateLimit: 1000,
|
|
491
|
+
throttlingBurstLimit: 2000,
|
|
492
|
+
tracingEnabled: true,
|
|
493
|
+
},
|
|
494
|
+
});
|
|
495
|
+
|
|
496
|
+
// User service
|
|
497
|
+
const users = api.root.addResource('users');
|
|
498
|
+
users.addMethod('GET', new apigateway.LambdaIntegration(getUsersFunction));
|
|
499
|
+
users.addMethod('POST', new apigateway.LambdaIntegration(createUserFunction));
|
|
500
|
+
|
|
501
|
+
// Order service
|
|
502
|
+
const orders = api.root.addResource('orders');
|
|
503
|
+
orders.addMethod('GET', new apigateway.LambdaIntegration(getOrdersFunction));
|
|
504
|
+
orders.addMethod('POST', new apigateway.LambdaIntegration(createOrderFunction));
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
### Pattern 2: Stream Processing
|
|
508
|
+
|
|
509
|
+
Real-time data processing with Kinesis:
|
|
510
|
+
|
|
511
|
+
```typescript
|
|
512
|
+
const stream = new kinesis.Stream(this, 'DataStream', {
|
|
513
|
+
shardCount: 2,
|
|
514
|
+
retentionPeriod: Duration.days(7),
|
|
515
|
+
});
|
|
516
|
+
|
|
517
|
+
// Lambda processes stream records
|
|
518
|
+
new lambda.EventSourceMapping(this, 'StreamProcessor', {
|
|
519
|
+
target: processFunction,
|
|
520
|
+
eventSourceArn: stream.streamArn,
|
|
521
|
+
batchSize: 100,
|
|
522
|
+
maxBatchingWindow: Duration.seconds(5),
|
|
523
|
+
parallelizationFactor: 10,
|
|
524
|
+
startingPosition: lambda.StartingPosition.LATEST,
|
|
525
|
+
retryAttempts: 3,
|
|
526
|
+
bisectBatchOnError: true,
|
|
527
|
+
onFailure: new lambdaDestinations.SqsDestination(dlq),
|
|
528
|
+
});
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
### Pattern 3: Async Task Processing
|
|
532
|
+
|
|
533
|
+
Background job processing:
|
|
534
|
+
|
|
535
|
+
```typescript
|
|
536
|
+
// SQS queue for tasks
|
|
537
|
+
const taskQueue = new sqs.Queue(this, 'TaskQueue', {
|
|
538
|
+
visibilityTimeout: Duration.minutes(5),
|
|
539
|
+
receiveMessageWaitTime: Duration.seconds(20), // Long polling
|
|
540
|
+
deadLetterQueue: {
|
|
541
|
+
queue: dlq,
|
|
542
|
+
maxReceiveCount: 3,
|
|
543
|
+
},
|
|
544
|
+
});
|
|
545
|
+
|
|
546
|
+
// Lambda worker processes tasks
|
|
547
|
+
const worker = new lambda.Function(this, 'TaskWorker', {
|
|
548
|
+
// ... configuration
|
|
549
|
+
reservedConcurrentExecutions: 10, // Control concurrency
|
|
550
|
+
});
|
|
551
|
+
|
|
552
|
+
new lambda.EventSourceMapping(this, 'TaskConsumer', {
|
|
553
|
+
target: worker,
|
|
554
|
+
eventSourceArn: taskQueue.queueArn,
|
|
555
|
+
batchSize: 10,
|
|
556
|
+
reportBatchItemFailures: true, // Partial batch failure handling
|
|
557
|
+
});
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
### Pattern 4: Scheduled Jobs
|
|
561
|
+
|
|
562
|
+
Periodic processing with EventBridge:
|
|
563
|
+
|
|
564
|
+
```typescript
|
|
565
|
+
// Daily cleanup job
|
|
566
|
+
new events.Rule(this, 'DailyCleanup', {
|
|
567
|
+
schedule: events.Schedule.cron({ hour: '2', minute: '0' }),
|
|
568
|
+
targets: [new targets.LambdaFunction(cleanupFunction)],
|
|
569
|
+
});
|
|
570
|
+
|
|
571
|
+
// Process every 5 minutes
|
|
572
|
+
new events.Rule(this, 'FrequentProcessing', {
|
|
573
|
+
schedule: events.Schedule.rate(Duration.minutes(5)),
|
|
574
|
+
targets: [new targets.LambdaFunction(processFunction)],
|
|
575
|
+
});
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
### Pattern 5: Webhook Processing
|
|
579
|
+
|
|
580
|
+
Handle external webhooks:
|
|
581
|
+
|
|
582
|
+
```typescript
|
|
583
|
+
// API Gateway endpoint for webhooks
|
|
584
|
+
const webhookApi = new apigateway.RestApi(this, 'WebhookApi', {
|
|
585
|
+
restApiName: 'webhooks',
|
|
586
|
+
});
|
|
587
|
+
|
|
588
|
+
const webhook = webhookApi.root.addResource('webhook');
|
|
589
|
+
webhook.addMethod('POST', new apigateway.LambdaIntegration(webhookFunction, {
|
|
590
|
+
proxy: true,
|
|
591
|
+
timeout: Duration.seconds(29), // API Gateway max
|
|
592
|
+
}));
|
|
593
|
+
|
|
594
|
+
// Lambda handler validates and queues webhook
|
|
595
|
+
export const handler = async (event: APIGatewayProxyEvent) => {
|
|
596
|
+
// Validate webhook signature
|
|
597
|
+
const isValid = validateSignature(event.headers, event.body);
|
|
598
|
+
if (!isValid) {
|
|
599
|
+
return { statusCode: 401, body: 'Invalid signature' };
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
// Queue for async processing
|
|
603
|
+
await sqs.sendMessage({
|
|
604
|
+
QueueUrl: process.env.QUEUE_URL,
|
|
605
|
+
MessageBody: event.body,
|
|
606
|
+
});
|
|
607
|
+
|
|
608
|
+
// Return immediately
|
|
609
|
+
return { statusCode: 202, body: 'Accepted' };
|
|
610
|
+
};
|
|
611
|
+
```
|
|
612
|
+
|
|
613
|
+
## Best Practices
|
|
614
|
+
|
|
615
|
+
### Error Handling
|
|
616
|
+
|
|
617
|
+
**Implement comprehensive error handling**:
|
|
618
|
+
|
|
619
|
+
```typescript
|
|
620
|
+
export const handler = async (event: SQSEvent) => {
|
|
621
|
+
const failures: SQSBatchItemFailure[] = [];
|
|
622
|
+
|
|
623
|
+
for (const record of event.Records) {
|
|
624
|
+
try {
|
|
625
|
+
await processRecord(record);
|
|
626
|
+
} catch (error) {
|
|
627
|
+
console.error('Failed to process record:', record.messageId, error);
|
|
628
|
+
failures.push({ itemIdentifier: record.messageId });
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
// Return partial batch failures for retry
|
|
633
|
+
return { batchItemFailures: failures };
|
|
634
|
+
};
|
|
635
|
+
```
|
|
636
|
+
|
|
637
|
+
### Dead Letter Queues
|
|
638
|
+
|
|
639
|
+
**Always configure DLQs for error handling**:
|
|
640
|
+
|
|
641
|
+
```typescript
|
|
642
|
+
const dlq = new sqs.Queue(this, 'DLQ', {
|
|
643
|
+
retentionPeriod: Duration.days(14),
|
|
644
|
+
});
|
|
645
|
+
|
|
646
|
+
const queue = new sqs.Queue(this, 'Queue', {
|
|
647
|
+
deadLetterQueue: {
|
|
648
|
+
queue: dlq,
|
|
649
|
+
maxReceiveCount: 3,
|
|
650
|
+
},
|
|
651
|
+
});
|
|
652
|
+
|
|
653
|
+
// Monitor DLQ depth
|
|
654
|
+
new cloudwatch.Alarm(this, 'DLQAlarm', {
|
|
655
|
+
metric: dlq.metricApproximateNumberOfMessagesVisible(),
|
|
656
|
+
threshold: 1,
|
|
657
|
+
evaluationPeriods: 1,
|
|
658
|
+
alarmDescription: 'Messages in DLQ require attention',
|
|
659
|
+
});
|
|
660
|
+
```
|
|
661
|
+
|
|
662
|
+
### Observability
|
|
663
|
+
|
|
664
|
+
**Enable tracing and monitoring**:
|
|
665
|
+
|
|
666
|
+
```typescript
|
|
667
|
+
new NodejsFunction(this, 'Function', {
|
|
668
|
+
entry: 'src/handler.ts',
|
|
669
|
+
tracing: lambda.Tracing.ACTIVE, // X-Ray tracing
|
|
670
|
+
environment: {
|
|
671
|
+
POWERTOOLS_SERVICE_NAME: 'order-service',
|
|
672
|
+
POWERTOOLS_METRICS_NAMESPACE: 'MyApp',
|
|
673
|
+
LOG_LEVEL: 'INFO',
|
|
674
|
+
},
|
|
675
|
+
});
|
|
676
|
+
```
|
|
677
|
+
|
|
678
|
+
## Using MCP Servers Effectively
|
|
679
|
+
|
|
680
|
+
### AWS Serverless MCP Usage
|
|
681
|
+
|
|
682
|
+
**Lifecycle management**:
|
|
683
|
+
- Initialize new serverless projects
|
|
684
|
+
- Generate SAM templates
|
|
685
|
+
- Deploy applications
|
|
686
|
+
- Test locally before deployment
|
|
687
|
+
|
|
688
|
+
### Lambda Tool MCP Usage
|
|
689
|
+
|
|
690
|
+
**Function execution**:
|
|
691
|
+
- Test Lambda functions directly
|
|
692
|
+
- Execute automation workflows
|
|
693
|
+
- Access private resources
|
|
694
|
+
- Validate integrations
|
|
695
|
+
|
|
696
|
+
### Step Functions MCP Usage
|
|
697
|
+
|
|
698
|
+
**Workflow orchestration**:
|
|
699
|
+
- Create state machines for complex workflows
|
|
700
|
+
- Execute distributed transactions
|
|
701
|
+
- Implement saga patterns
|
|
702
|
+
- Coordinate microservices
|
|
703
|
+
|
|
704
|
+
### SNS/SQS MCP Usage
|
|
705
|
+
|
|
706
|
+
**Messaging operations**:
|
|
707
|
+
- Test pub/sub patterns
|
|
708
|
+
- Send test messages to queues
|
|
709
|
+
- Validate event routing
|
|
710
|
+
- Debug message processing
|
|
711
|
+
|
|
712
|
+
## Additional Resources
|
|
713
|
+
|
|
714
|
+
This skill includes comprehensive reference documentation based on AWS best practices:
|
|
715
|
+
|
|
716
|
+
- **Serverless Patterns**: `references/serverless-patterns.md`
|
|
717
|
+
- Core serverless architectures and API patterns
|
|
718
|
+
- Data processing and integration patterns
|
|
719
|
+
- Orchestration with Step Functions
|
|
720
|
+
- Anti-patterns to avoid
|
|
721
|
+
|
|
722
|
+
- **Event-Driven Architecture Patterns**: `references/eda-patterns.md`
|
|
723
|
+
- Event routing and processing patterns
|
|
724
|
+
- Event sourcing and saga patterns
|
|
725
|
+
- Idempotency and error handling
|
|
726
|
+
- Message ordering and deduplication
|
|
727
|
+
|
|
728
|
+
- **Security Best Practices**: `references/security-best-practices.md`
|
|
729
|
+
- Shared responsibility model
|
|
730
|
+
- IAM least privilege patterns
|
|
731
|
+
- Data protection and encryption
|
|
732
|
+
- Network security with VPC
|
|
733
|
+
|
|
734
|
+
- **Observability Best Practices**: `references/observability-best-practices.md`
|
|
735
|
+
- Three pillars: metrics, logs, traces
|
|
736
|
+
- Structured logging with Lambda Powertools
|
|
737
|
+
- X-Ray distributed tracing
|
|
738
|
+
- CloudWatch alarms and dashboards
|
|
739
|
+
|
|
740
|
+
- **Performance Optimization**: `references/performance-optimization.md`
|
|
741
|
+
- Cold start optimization techniques
|
|
742
|
+
- Memory and CPU optimization
|
|
743
|
+
- Package size reduction
|
|
744
|
+
- Provisioned concurrency patterns
|
|
745
|
+
|
|
746
|
+
- **Deployment Best Practices**: `references/deployment-best-practices.md`
|
|
747
|
+
- CI/CD pipeline design
|
|
748
|
+
- Testing strategies (unit, integration, load)
|
|
749
|
+
- Deployment strategies (canary, blue/green)
|
|
750
|
+
- Rollback and safety mechanisms
|
|
751
|
+
|
|
752
|
+
**External Resources**:
|
|
753
|
+
- **AWS Well-Architected Serverless Lens**: https://docs.aws.amazon.com/wellarchitected/latest/serverless-applications-lens/
|
|
754
|
+
- **ServerlessLand.com**: Pre-built serverless patterns
|
|
755
|
+
- **AWS Serverless Workshops**: https://serverlessland.com/learn?type=Workshops
|
|
756
|
+
|
|
757
|
+
For detailed implementation patterns, anti-patterns, and code examples, refer to the comprehensive references in the skill directory.
|