-
Notifications
You must be signed in to change notification settings - Fork 68
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support DynamoDb #76
Comments
NOTE: It's important to note, before embarking on an implementation, that it is believed that DynamoDb does not facilitate full replays of all events in the same manner as the CosmosDb Change Feed does -- the key implication being that doing a full re-projection of all existing events will not be possible as it is for CosmosDb (which means one would need to find an alternate way to enumerate streams and do the initial projection, prior to letting a change feed processor work off events as they are being written) |
@bartelink just out of curiosity, when you say |
@CumpsD First off, most of the above is based on a few hours of scanning docs over the course of a few days so I can definitely be wrong. I was trying to suggest that there may be a gap between:
Its very possible I'm wrong and I'd be delighted to be so - I've done lots of googling and not found anything that definitely says no; it's more me saying "I have seen nothing that suggests there's a way to effect a re-traverse" to blow away a denormalised/projected form and rebuild. |
Thanks for your feedback @bartelink. I'm starting a new pet project and was considering using DynamoDb as the ES. Didn't expect such a crucial thing to be missing though, I'll double check too. Too bad there is no EventSource SaaS offering, that would be nice :) |
Yes, I suspect more folks than just me have asked about such a thing, but here we are ;) |
Come a far way 👍🏻 :) |
(Beta nugets have been available for a few days) |
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 [newDynamoDb
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 insideTip
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:
Likely one should explore re-introducing the [Should follow theTip
isaBatch
] semantics removed in Remove Tip isa Batch semantics #58 as that is in general an efficient scheme in terms of reducing document counts, contention and Request Capacity Init consumptionEquinox.CosmosStore
v3 impl, which implementsTip
isaBatch
semanticsCosmosStore
- 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.The text was updated successfully, but these errors were encountered: