awslabs / aws-sdk-kotlin

Multiplatform AWS SDK for Kotlin
Apache License 2.0
392 stars 47 forks source link

Provide a high-level DynamoDB client #472

Open michaelbrewer opened 2 years ago

michaelbrewer commented 2 years ago

Describe the feature

Provide a high-level DynamoDB client which performs object-data mapping, similar to the DynamoDBMapper for the AWS SDK for Java.

Is your Feature Request related to a problem?

Loading and inserting values using the attribute values apis is tedious

Proposed Solution

see the existing aws java sdk v1 (or v2) DynamoDbMapper

Describe alternative solutions or features you've considered

No response

Acknowledge

AWS Kotlin SDK version used

all

Platform (JVM/JS/Native)

all

Operating System and version

all

ianbotsf commented 2 years ago

Hi @michaelbrewer, thank you for the feature request. We'd definitely love to provide the equivalent of DynamoDbMapper in the future. I'll leave this request open to allow others to 👍 upvote and that may help us with prioritization.

ianbotsf commented 2 years ago

Additional context from #76:

We might be able to do this as a compiler plugin and generate rather optimized code so that we don't have to rely on annotation processing (which I believe is JVM only at the moment) OR on reflection capabilities.

See a good high level overview of considerations from rust SDK: awslabs/aws-sdk-rust#70

popematt commented 2 years ago

Another possibility might be to leverage kotlinx.serialization. I haven't looked into it too thoroughly yet, but it seems like it would be straightforward to convert classes to and from DynamoDB Json.

randyhbh commented 1 year ago

Any update on this issue?

ianbotsf commented 1 year ago

We have no new updates to share at this time. Providing a high-level DynamoDB client remains on our roadmap but will likely not be prioritized until the underlying SDK itself (including the low-level DynamoDB client) is stable and released as 1.0.