Skip to content

feat: Add async DynamoDB persistent feature store - #490

Draft
jsonbailey wants to merge 1 commit into
mainfrom
jb/sdk-2906/async-persist-dynamodb
Draft

feat: Add async DynamoDB persistent feature store#490
jsonbailey wants to merge 1 commit into
mainfrom
jb/sdk-2906/async-persist-dynamodb

Conversation

@jsonbailey

Copy link
Copy Markdown
Contributor

Overview

Adds an async DynamoDB persistent feature store: AsyncDynamoDBFeatureStore,
constructed via DynamoDB.async_feature_store(...). It builds directly on the async
persistence foundation merged in #488 (AsyncFeatureStoreCore + AsyncCachingStoreWrapper),
providing the DynamoDB-backed core.

The store uses the same table layout and key schema as the synchronous DynamoDB feature
store, so an async SDK and a synchronous SDK can share a single DynamoDB table.

New optional dependency

Adds an async-dynamodb extra that pulls in aioboto3. boto3 is sync-only, so async
access needs aioboto3 (which runs on aiobotocore). The existing sync dynamodb extra
(boto3) is unchanged.

Client lifecycle

aioboto3 clients are async context managers and cannot be created in __init__ the way
the sync boto3 client is. The client is therefore created lazily on first use, bound to the
running event loop, kept for the lifetime of the store, and released in close().

Testing

Unit tests that do not need a backend (the caching-wrapper wiring and the missing-aioboto3
guard) run in the normal suite. The integration tests require a live DynamoDB Local instance,
so they run in CI rather than locally.

Notes

  • SDK-2906
  • Draft pending review.

feat: Add async DynamoDB persistent feature store

Builds on the async persistence foundation (AsyncFeatureStoreCore +
AsyncCachingStoreWrapper). Adds the async-dynamodb extra pulling aioboto3.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant