Back to articles
AWS SQS patterns for reliable background job processing
How-ToDevOps

AWS SQS patterns for reliable background job processing

via Dev.to DevOpsYash

AWS SQS patterns for reliable background job processing Architecture Producer → SQS Queue (visibility_timeout >= Lambda timeout) ↓ after maxReceiveCount = 3 Dead Letter Queue → CloudWatch alarm on messages > 0 Terraform setup resource "aws_sqs_queue" "dlq" { name = "${var.service}-dlq" ; message_retention_seconds = 1209600 } resource "aws_sqs_queue" "worker" { name = "${var.service}-queue" ; visibility_timeout_seconds = 300 redrive_policy = jsonencode ({ deadLetterTargetArn = aws_sqs_queue . dlq . arn ; maxReceiveCount = 3 }) } resource "aws_cloudwatch_metric_alarm" "dlq" { alarm_name = "${var.service}-dlq-not-empty" comparison_operator = "GreaterThanThreshold" ; evaluation_periods = 1 metric_name = "ApproximateNumberOfMessagesVisible" ; namespace = "AWS/SQS" period = 300 ; statistic = "Maximum" ; threshold = 0 ; alarm_actions = [ var . alert_sns_arn ] dimensions = { QueueName = aws_sqs_queue . dlq . name } } Lambda with partial batch failure def handler ( event : dict , context ) -> d

Continue reading on Dev.to DevOps

Opens in a new tab

Read Full Article
5 views

Related Articles