datomic

2025-09-08T20:46:44.576989Z

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?

Joe Lane 2025-09-08T21:23:19.930089Z

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

2025-09-08T21:25:05.427019Z

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.

Joe Lane 2025-09-08T21:27:07.052199Z

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.

2025-09-08T21:29:12.228799Z

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.

2025-09-08T21:30:19.029679Z

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

Joe Lane 2025-09-08T21:31:25.396689Z

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

Joe Lane 2025-09-08T21:32:29.350569Z

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.

2025-09-08T21:36:54.531079Z

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?

Joe Lane 2025-09-08T21:37:20.958509Z

No, you would not.

2025-09-08T21:38:25.300899Z

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

Joe Lane 2025-09-08T21:38:48.047299Z

Sure thing!