Multi-tenancy & databases

The Datomic transactor is designed and intended to serve a single primary database. It is certainly OK to have one or a few secondary databases for ‘supporting’ use cases, but the indexing behavior of the transactor is based on the majority of the writes being against a single logical db.

You can certainly use partitions to improve the index locality of data on a per-customer (or per-group of customers) basis. This has been discussed previously, in particular using a fixed number of partitions and dividing customer data between them equally (i.e. with a modulo on the # of partitions).

If your architecture requirements necessitate multiple logical databases, we suggest running an individual transactor per active database.

-Marshall