Optional DynamoDB mirror
Flag: enable_dynamodb = true in terraform.tfvars
Because S3 Annotations have no server-side query, DynamoDB is an optional read index — not a replacement for canonical metadata on the object.
| S3 Annotations (default) | + DynamoDB | |
|---|---|---|
| Source of truth | S3 | S3 |
| API read | Parallel GetObjectAnnotation | Table scan + filter |
| Best for | Demo scale (tens–hundreds) | Scale; heavy filter use |
Ingest writes S3 Annotation first; DynamoDB is a denormalized copy. No backfill on enable — re-run ingest.
Enable enable_dynamodb = true when filtered gallery queries return HTTP 503 or when the private bucket grows beyond a comfortable demo size. The API switches to a DynamoDB scan instead of N parallel GetObjectAnnotation calls. S3 annotations remain canonical — see API performance for why filtered reads are expensive without an index.