Skip to content

[Feature] DynamoDB Transactional Storage Provider #9616

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

Open
wants to merge 14 commits into
base: main
Choose a base branch
from

Conversation

scalalang2
Copy link
Contributor

@scalalang2 scalalang2 commented Jul 18, 2025

Microsoft Reviewers: Open in CodeFlow

Background

Currently users can use distributed transaction in DynamoDB by using StateStorageBridge, but it aggregates all pending state into a single entry, Since DynamoDB limits the size of each entry upto 400 KB. It's not applicable for larger transactions. the data must be split into multiple entires, similar to the method used with Orleans.Transactions.AzureStorage

resolve #9150

@scalalang2 scalalang2 changed the title [Feature] [WIP] DynamoDB Transactional Storage Provider [Feature] DynamoDB Transactional Storage Provider Jul 19, 2025
@scalalang2
Copy link
Contributor Author

We are a team working on an unreleased project from one of South Korea's largest game development companies.
This provider has functioned properly during both internal testing and a pre-release test on Steam.

I'd appreciate that if the core team could review the code.

@scalalang2
Copy link
Contributor Author

I noticed that the transaction in DynamoDB is quite slow compared to individual DeleteItem, PutItem and UpdateItem.
Can I replace the the transactional operation to individual calls? @ReubenBond

The comment here describes that it doesn't need to operate atomically.

assemble all storage operations into a single batch
these operations must commit in sequence, but not necessarily atomically
so we can split this up if needed

image

@scalalang2 scalalang2 force-pushed the dynamodb-transactional-storage branch from 7bbccdf to 4ae88c1 Compare July 22, 2025 05:47
@scalalang2 scalalang2 force-pushed the dynamodb-transactional-storage branch from 4ae88c1 to 1ef18cd Compare July 22, 2025 05:48
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.

Support Orleans.Transactions.DynamoDB.
1 participant