datomic 2025-09-08

I have a question about Datomic Pro. In the transactor.properties, there is a property called aws-dynamodb-table, which seems to be required (at least with protocol=ddb). I'd like to use the same transactor to read/write multiple DynamoDB tables. Is this possible, or would I have to run multiple transactors on different ports?

Hi Brandon, can you help me understand the use case?

I have several apps hosted on AWS, and am self-hosting a Datomic transactor. Each app points to a different DynamoDB table and I'd like to just use one transactor to service all the apps, rather than one transactor per app.

Right, I think you're describing what you'd like, but I'm trying to understand why you desire that capability. Today, Datomic transactors using DDB are 1:1 w/ a DDB Table, and many Datomic databases can be served via that transactor +ddb-table pair.

I see. So the value here is really just resource consolidation. Rather than allocating CPU/RAM per transactor, I'd prefer to just lump it together and scale that one transactor up/down as needed.

many Datomic databases can be served via that transactor +ddb-table pair. Could you elaborate?

You can invoke d/create-database multiple times for app-foo, app-bar, app-baz and have distinct applications each served by that same transactor with their own independent transaction update pipeline + shared indexer

I wouldn't add hundreds or thousands of databases to the same transactor, but if you want you can definitely run a few small-medium sized apps out of the same transactor for quite a while.

Ahh right. Okay, yeah that did come to mind, but wasn't sure what limitations that came with. So then, suppose I did go the route of using one DynamoDB table for multiple databases: app-foo, app-bar, and app-baz. Would I be able to deny the foo application access to app-bar and app-baz databases while providing it permission to the app-foo database?

No, you would not.

Ok, so pros and cons here. This was very helpful. Thanks for taking the time!

Sure thing!