question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

In the spirit of #62, this ticket tracks the considerations for implementing a storage adapter for Amazon DynamoDb; It absolutely does not represent a roadmapped task or anything that’s an organic need relevant to a current usage scenario.

The scheme used by Equinox.Cosmos seems to map to the [new DynamoDb transactional API) (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/transaction-apis.html)

Not 100% about how best to manage OCC - the client Position tracks the etag in the Cosmos impl, and a detailed read and research of guarantees provided is obviously warranted. One thing that does seem clear is that it It seems the client token idempotency is definitely not relevant. Wild guess: Maintaining expectedVersion either inside Tip or as metadata within it and then doing the writes conditional on that should work.

One key difference is the 400K document size upper limit, which means:

  • Unfolds can’t practically be maintained directly in Tip - e.g. if you ever need to support a transition in a snapshot schema in a blue/green deploy scenario, that halves the 400K. This means that an equivalent of #61 would need to be implemented
  • ~Likely one should explore re-introducing the [Tip isa Batch] semantics removed in #58 as that is in general an efficient scheme in terms of reducing document counts, contention and Request Capacity Init consumption~ Should follow the Equinox.CosmosStore v3 impl, which implements Tip isa Batch semantics
  • The 400K may make #31 more relevant than it has proven for CosmosStore - client side mechanisms about managing how one is faring wrt the limit will be big consideration given its 3MB vs 400K - the former is effectively unlimited for most reasonable sets of events and/or unfolds one might be maintaining.

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Comments:8 (3 by maintainers)

github_iconTop GitHub Comments

1reaction
bartelinkcommented, May 12, 2022

FYI @CumpsD Slightly necroposting but #321 is nearly out the door - I ended up implementing a changefeed too (there’s a Propulsion.DynamoStore and a Propulsion.DynamoStore.Lambda) … And there is an ESDB Cloud now

0reactions
bartelinkcommented, May 23, 2022

(Beta nugets have been available for a few days)

Read more comments on GitHub >

github_iconTop Results From Across the Web

Amazon DynamoDB FAQs | NoSQL Key-Value Database
Yes. DynamoDB is a fully managed cloud service that you access via API. Applications running on any operating system (such as Linux, Windows,...
Read more >
Amazon DynamoDB | NoSQL database service
Amazon DynamoDB is a key-value and document database that delivers single-digit millisecond performance at any scale. It's a fully managed, multiregion, ...
Read more >
Introduction to DynamoDB
DynamoDB is a key-value NoSQL database. Primarily This makes it Amazon's preferred database for simple and fast data models, such as managing user...
Read more >
Amazon DynamoDB: What It Is and 10 Things You Should ...
Amazon DynamoDB is a managed NoSQL service with strong consistency and predictability, shielding you from the complexities of manual work.
Read more >
[Answered] Which AWS regions support DynamoDB?
Answer. DynamoDB is available in the following 19 regions: US East (Ohio) us-east-2; US East (N. Virginia) us-east-1; US West (N. California) us-west-1 ......
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found