stable

aws-dynamo

AWS DynamoDB adapter for noy-db — single-table design, so loadAll() is a single Query, with atomic CAS via ConditionExpression.

@noy-db/to-aws-dynamo · pnpm add @noy-db/to-aws-dynamo @aws-sdk/client-dynamodb @aws-sdk/lib-dynamodb Single-table DynamoDB, zero-knowledge cloud sync.

Shaperecord
Atomic CAS✓
Localitycloud
Speedslow
Persistencedurable

What it does

Stores records single-table style (pk = vault, sk = {collection}#{id}), so loadAll() for a collection is a single Query rather than N requests. @aws-sdk/client-dynamodb and @aws-sdk/lib-dynamodb are peer dependencies you install and wire up in your app.

Notes

  • casAtomic: true via ConditionExpression on the version attribute.
  • Record shape, one item per record.
  • Pairs naturally with to-aws-s3 for blob-heavy collections via routeStore.
  • Factory: toAwsDynamo(options: DynamoOptions).

Store-locator descriptor

See store-locator descriptors for the general model. kind: 'aws-dynamo', class: 'cloud'. address is { table, region?, endpoint? }. Takes no options argument — this store has no serializable tuning today. binding.client? carries a pre-built document client, which always wins over address-derived construction; AWS credentials arrive via a kind: 'aws' StoreCredentialSource at resolve() time, or implicitly via the SDK's default provider chain.

import { dynamoStoreDescriptor, registerDynamoStore } from '@noy-db/to-aws-dynamo'

const descriptor = dynamoStoreDescriptor({ table: 'noydb', region: 'us-east-1' })

See also