src/lib/tenancy.ts. Workspace membership is resolved before tenant-scoped reads or writes.
Binary media belongs in the asset store; DynamoDB records identifiers, URIs, digests, rights, and lineage. SQS delivers triggers, while DynamoDB transactions decide whether a trigger is current and claimable. See State ownership.
See Campaigns and production planning for policy configuration and plan/item command records.
Operational feed records
workspaces/{workspaceId}/operational_feeds/{brandId} stores the current compact projection and lastSequence. Its updates subcollection uses zero-padded sequence IDs. A synchronization transaction emits at most 400 changes so the feed remains below DynamoDB’s per-transaction write ceiling; later polls converge any remaining changes.
Job control receipts live below the job in control_commands/{commandId}. A receipt records the payload digest, authenticated actor, accepted or rejected outcome, and resulting control version when accepted.
Data batches
workspaces/{workspaceId}/data_batches/{batchId} owns the manifest identity and batch policy. Work items live in work_items/{itemId} and record partition identity, state, attempt, epoch, lease owner digest, dispatch visibility, artifacts, and terminal failure code.
Batch initialization states are initializing, pending, running, complete, partial, failed, and cancelled. Work-item states are pending, claimed, succeeded, failed, dead_lettered, and cancelled.