Skip to content

DynamoDB Jobs Table

The Jobs table
DynamoDB table keyed by `job_id` — stores reprocess job metadata, parameters, status, and output references.
tracks reprocessing jobs submitted through the Reprocess API
Reprocess API Lambda (`services/reprocess-api/`) — accepts `/reprocess` jobs, writes DynamoDB records, enqueues Reprocess_Queue.
. The processor Lambda
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.
updates status when a job_id is present in the SQS
Amazon Simple Queue Service — buffers ingest and reprocess messages between S3/API and the processor Lambda.
message.

  • Partition key: job_id (String) — no sort key
  • Provisioned by: processing Terraform
    HashiCorp Terraform — provisions all platform infrastructure through five modules in `terraform/`.
    module
AttributeTypeDescription

job_id (PK)

StringUUID v4 — unique job identifier
stationString

4-character alphanumeric GNSS
Global Navigation Satellite System — source of RINEX observation data ingested and calibrated in this platform.
station identifier

yearNumber4-digit year (2000–2099)
doyNumber

Day of year
Day of year — three-digit value (001–366) used in RINEX paths and processed output keys.
(1–366)

parametersMapProcessing parameter overrides submitted with the job
statusString

One of: queued, processing, completed, failed

output_keyString

S3
Amazon Simple Storage Service — data lake bucket for raw ingest and processed TEC output; S3 events trigger processing.
key of primary output file (set on completion)

error_typeStringException class name (set on failure)
error_messageStringError details (set on failure)
trace_idStringUUID v4 correlation ID
created_atStringISO 8601 UTC timestamp
updated_atStringISO 8601 UTC timestamp
queued → processing → completed
→ failed
StatusMeaning
queuedJob record created, SQS message enqueued
processingProcessor Lambda has started the message
completed

Calibration succeeded, output_key populated

failed

Processing failed after retries or DLQ
Dead-letter queue — SQS queue receiving messages that exceeded maxReceiveCount (5). CloudWatch alarms fire when visible count ≥ 1.
routing

Terminal window
terraform -chdir=terraform output -raw jobs_table_name
Terminal window
export API_URL="$(terraform -chdir=terraform output -raw api_url)"
curl "${API_URL}/reprocess/${JOB_ID}"

See API Response Schemas for the GET response format.