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.
Table design
Section titled “Table design”- Partition key:
job_id(String) — no sort key - Provisioned by:
processingTerraform
HashiCorp Terraform — provisions all platform infrastructure through five modules in `terraform/`. module
Attributes
Section titled “Attributes”| Attribute | Type | Description |
|---|---|---|
| String | UUID v4 — unique job identifier |
station | String | 4-character alphanumeric GNSS |
year | Number | 4-digit year (2000–2099) |
doy | Number | Day of year |
parameters | Map | Processing parameter overrides submitted with the job |
status | String | One of: |
output_key | String | S3 |
error_type | String | Exception class name (set on failure) |
error_message | String | Error details (set on failure) |
trace_id | String | UUID v4 correlation ID |
created_at | String | ISO 8601 UTC timestamp |
updated_at | String | ISO 8601 UTC timestamp |
Status lifecycle
Section titled “Status lifecycle”queued → processing → completed → failed| Status | Meaning |
|---|---|
| queued | Job record created, SQS message enqueued |
| processing | Processor Lambda has started the message |
| completed | Calibration succeeded, |
| failed | Processing failed after retries or DLQ |
Lookup from Terraform
Section titled “Lookup from Terraform”terraform -chdir=terraform output -raw jobs_table_namePoll via API
Section titled “Poll via API”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.
Related pages
Section titled “Related pages”- SQS Message Schemas — Shape 1 reprocess messages
- Reprocess Workflow