SQS Queues
SQS
Amazon Simple Queue Service — buffers ingest and reprocess messages between S3/API and the processor Lambda. queues decouple ingest notifications from
processor
Processor Lambda container — runs PyTECGg calibration per SQS message; adopted when a Batch on Fargate parallel-execution quota increase was rejected. Image from `ghcr.io/platformfuzz/tec-processor-image` mirrored to ECR. execution. Verify messages
flow into Process_Queue
SQS standard queue — receives S3 ObjectCreated notifications for new raw RINEX files; triggers processor Lambda ingest path. after raw
RINEX
Receiver Independent Exchange Format — standard GNSS observation file format synced from GeoNet and calibrated by the processor. files appear in the
data lake
Private S3 bucket holding raw RINEX under `raw/rinexhourly/` and processed TEC output under `processed/tec/`. .
Check Process_Queue depth
Section titled “Check Process_Queue depth”From the demo repo root, after new objects land under raw/rinexhourly/:
aws sqs get-queue-attributes \ --queue-url "$(terraform -chdir=terraform output -raw queue_url)" \ --attribute-names ApproximateNumberOfMessagesExpect ApproximateNumberOfMessages to decrease as the processor consumes messages. A non-zero count immediately after ingest is normal.
Check in-flight messages
Section titled “Check in-flight messages”aws sqs get-queue-attributes \ --queue-url "$(terraform -chdir=terraform output -raw queue_url)" \ --attribute-names ApproximateNumberOfMessages ApproximateNumberOfMessagesNotVisibleApproximateNumberOfMessagesNotVisible reflects messages currently being processed (visibility timeout 900s).
Check Reprocess_Queue
Section titled “Check Reprocess_Queue”aws sqs get-queue-attributes \ --queue-url "$(terraform -chdir=terraform output -raw reprocess_queue_url)" \ --attribute-names ApproximateNumberOfMessagesReprocess_Queue stays empty until you submit a job via the Reprocess API
Reprocess API Lambda (`services/reprocess-api/`) — accepts `/reprocess` jobs, writes DynamoDB records, enqueues Reprocess_Queue. . See Reprocess Workflow.
Queue configuration
Section titled “Queue configuration”| Queue | Trigger | Concurrency cap |
|---|---|---|
| Process_Queue | S3 |
|
| Reprocess_Queue | Reprocess API |
|
Both use batch_size=1 and dead-letter queues
Dead-letter queue — SQS queue receiving messages that exceeded maxReceiveCount (5). CloudWatch alarms fire when visible count ≥ 1. after 5 failed receives.
Troubleshooting
Section titled “Troubleshooting”If messages accumulate without draining, check Processor Lambda and Common Issues — SQS.