guregu / dynamo

expressive DynamoDB library for Go
Other
1.3k stars 179 forks source link

dynamo v2: featuring aws-sdk-go-v2 #232

Closed guregu closed 3 months ago

guregu commented 5 months ago

(This is a continuation of #206, fresh PR without merge conflicts).

At last, the long awaited dynamo/v2! This keeps mostly the same API as v1 but uses the new AWS SDK.

Changes:

I believe v2 should be ready for testing now. You can try it out now with:

go get github.com/guregu/dynamo/v2@v2-dev

I would really appreciate it if people test it before the official release. I will release this after I get some feedback. Or, if I don't get any, within a few weeks.

sgriffith3 commented 3 months ago

@guregu Any reason you are holding this PR open any longer?

guregu commented 3 months ago

@guregu Any reason you are holding this PR open any longer?

There were some encoding bugs that should hopefully be all taken care of now, haven't heard anything new. Has anyone tried running this (even against their test suite)? Would be nice to get some feedback.

sgriffith3 commented 3 months ago

My team has prioritized testing this on our infrastructure for you. We will be able to work on this over the next several business days.

Are there any specific tests that you would like us to run for this, or just generally make sure it is working as expected?

guregu commented 3 months ago

My team has prioritized testing this on our infrastructure for you. We will be able to work on this over the next several business days.

Are there any specific tests that you would like us to run for this, or just generally make sure it is working as expected?

Awesome, thank you! Much appreciated. The biggest changes are related to encoding/decoding, so if you have any code that uses custom encoding methods and stuff it might be a good place to focus on. Besides that, in v1 there was a lot of custom retrying code that has been delegated to the AWS SDK itself in v2; I'm curious if the new defeaults match user expectations (biggest area I could see this affect is: throttling on busy tables, and read/write transactions being canceled due to concurrent modification). However I think just running it on a codebase is enough to help test it. Thanks!

sgriffith3 commented 3 months ago

Unfortunately, our use case does not include custom encoding nor practically any concurrent modification. But I can confirm that running it on our code base works as expected!

guregu commented 3 months ago

That is good news, thanks. It looks like we are ready then. I'll make the release this week, within a day or two, as soon as I get some free time.