Running the Transactor

A Datomic transactor performs ACID transactions for a set of databases. You can launch a transactor for one or more databases with the bin/transactor script in the datomic directory:

bin/transactor path/to/

The transactor properties file needs to include license-key from your my.datomic registered account. For information on launching a second transactor for high availability, see configuring high availability

The transactor startup script accepts JVM arguments, but please note that JVM args other than `-Xmx` and `-Xms` passed to `bin/transactor` (including Java system properties passed via `-D`) override Datomic's recommended Java options, including the GC settings.

JVM ArgumentDev Default SettingProd Default Setting
Max HeapXmx1gXmx4g
Initial Heap sizeXms1gXms4g
GC Settings-XX:+UseG1GC-XX:+UseG1GC

For information on supported storages and how transactors interact with peers see storage services and peers.

Health Check Endpoint

A web endpoint for health check is not needed for the Datomic transactor. The Datomic transactor is not a web application, and Datomic High Availability takes care of transactor health automatically.

However, some tools have a checklist requirement that all processes provide a health check endpoint. If you need one, Datomic Pro lets you set a health check host and port in the transactor properties file:


Or on the command line:

bin/transactor -Ddatomic.pingHost=localhost -Ddatomic.pingPort=9999 {etc.}

When the health check is enabled, Datomic will respond with a 2xx status code to HTTP requests for {host}:{port}/health, e.g.

wget localhost:9999/health

HTTP request sent, awaiting response... 204 No Content