Run a Transactor

Running a local Transactor

This getting started guide instructs you to use mem storage. mem storage will store your data in memory and will only persist that data as long as the

The dev storage protocol uses local disk files for storage, and requires a transactor to be running. There are other storage options which should be considered for any production environment.

If you wish to try this guide without persisting changes to disk then use in-memory storage.

Transactor configuration happens at the command line and in the transactor.properties file.

The Datomic distribution comes with a sample configuration for dev storage. Copy config/samples/dev-transactor-templates.properties to another location. This guide will use the config directory in your datomic-pro distribution directory:

cp config/samples/dev-transactor-template.properties config/dev-transactor-template.properties

You can start a local transactor with dev storage from your system shell as follows:

bin/transactor -Ddatomic.printConnectionInfo=true config/dev-transactor-template.properties
Launching with Java options -server -Xms1g -Xmx1g  -Ddatomic.printConnectionInfo=true
Starting datomic:dev://localhost:4334/<DB-NAME>, storing data in: data ...
System started datomic:dev://localhost:4334/<DB-NAME>, storing data in: data  

In production datomic.printConnectionInfo=true is a potential liability and should usually be removed to avoid leaking your connection info.

Replace <DB-NAME> in the returned connection string with the database name of your choice, for example "hello":


If you use this database URI then this transactor process will be used for the subsequent steps in this guide. Make sure that it's running while you work through this guide.