datomic

Dave Mays 2025-05-06T11:09:21.243039Z

In a Postgres backed Datomic Pro setup, the peer has a dependency on a Postgres driver. This is working for me during local testing, but I was wondering if someone could clarify how the peer gets data from the transactor, and why the peer itself needs an SQL driver. Is the peer reading data directly from the Postgres database (this is what seems to be happening), or receiving data via HTTP or some other protocol via the transactor's URI? If I'm understanding correctly, besides tighter Clojure language integration a main benefit of using a peer is you can have multiple peers read from the single transactor. I'd pictured a natural use of this being multiple peer edges running in different regions close to your users, reading from your central transactor. I thought maybe the peers pull data from the transactor via HTTP and store it locally somehow, but if the peers are reading directly from the same database maybe the use case is not as I'd pictured. Can peers replicate to their own separate Postgres instance?

favila 2025-05-06T11:11:36.673699Z

Peers read directly from storage. The transactors are only for writes and to push-broadcast updates

favila 2025-05-06T11:12:15.746229Z

Note your connection uri doesn’t mention anything about the transactor, only storage

Dave Mays 2025-05-06T12:15:02.370039Z

Thank you, that is a helpful clarification.