Schedule icon
AwsCLI icon
Return icon
If icon
Create icon
SlackIncomingWebhook icon
Log icon

Amazon DynamoDB Throttled Requests and Capacity Starvation Sentinel

Monitor Amazon DynamoDB throttled requests and capacity limits with Kestra. Query CloudWatch, open GitHub issues, and alert Slack.

Categories
CloudData

Serverless NoSQL databases like Amazon DynamoDB automatically partition data across storage nodes. When hot partition keys or traffic spikes exceed provisioned Read/Write Capacity Units (or on-demand burst capacity), DynamoDB throttles requests, causing HTTP 400 ProvisionedThroughputExceededException errors to client microservices. This blueprint queries CloudWatch for ThrottledRequests metrics periodically, identifies capacity starvation, files a prioritized GitHub DBA ticket, and alerts the engineering team on Slack.

How it works

  1. periodic_dynamodb_throttle_check runs every 15 minutes.
  2. probe_dynamodb_throttles queries CloudWatch for ThrottledRequests.
  3. evaluate_throttles evaluates if throttles exceed threshold.
  4. branch_on_throttles logs a GitHub issue and alerts Slack if breached.
  5. log_audit_complete logs final outcome.
  6. errors block alerts Slack on execution failure.

What you get

  • Automated, continuous monitoring of DynamoDB table capacity.
  • Early warning before throughput starvation impacts customer checkout or login flows.
  • Consolidated GitHub incident tickets with table metrics.
  • Real-time Slack notifications.

Who it's for

  • Database Administrators and NoSQL SREs managing DynamoDB tables.
  • Serverless platform developers building high-throughput applications.
  • Infrastructure leads tuning database cost and capacity allocation.

Why orchestrate this with Kestra

Kestra provides declarative automation connecting CloudWatch metrics, conditional evaluation, and chat notifications in a single auditable flow.

Prerequisites

  • An AWS account with an active DynamoDB table.
  • IAM credentials with CloudWatch read permissions.
  • A GitHub Personal Access Token.
  • A Slack incoming webhook URL.

Secrets

  • AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY: AWS credentials.
  • GITHUB_TOKEN: GitHub token.
  • SLACK_WEBHOOK: Slack webhook URL.

Inputs

  • aws_region: Target region.
  • table_name: DynamoDB table name.
  • throttle_threshold: Max throttles before alerting.
  • target_repository: GitHub repository.

Outputs

  • outputs.evaluate_throttles.value.throttle_count: Number of throttles detected.
  • outputs.evaluate_throttles.value.is_throttling_critical: Boolean breach flag.

Quick start

  1. Configure secrets.
  2. Set inputs to match target DynamoDB table.
  3. Run manually to verify metric retrieval.
  4. Enable schedule trigger.

How to extend

  • Add automated auto-scaling policy adjustment tasks.
  • Route urgent alerts to PagerDuty.

Links

See How

New to Kestra?

Use blueprints to kickstart your first workflows.