Skip to content

Datomic

Remote client

# peer server
./bin/run \
  -m "datomic.peer-server" \
  -h "localhost" \
  -p "8998" \
  -a "myaccesskey,mysecret" \
  -d "hello,datomic:mem://hello"
(defproject app "0.1.0"
  :dependencies [[org.clojure/clojure "1.10.3"]
                 [com.datomic/client-pro "1.0.74"]]) ; client mode

Peer library

  • A Datomic transactor performs ACID transactions for a set of databases
  • Server URI
  • E.g.,datomic:dev://localhost:4334/
# config/dev-transactor-template.properties
protocol=dev
host=localhost
port=4334
license-key=from_your_my.datomic_registered_account
# run transactor (always run with java 8!)
JAVA_HOME=/usr/lib/jvm/java-8-openjdk ./bin/transactor "config/dev-transactor-template.properties"
(defproject app "0.1.0"
  :repositories {"my.datomic.com" {:url "https://my.datomic.com/repo"
                                   :username [:env/my_datomic_username] ; export MY_DATOMIC_USERNAME= "[email protected]"
                                   :password [:env/my_datomic_password] ; export MY_DATOMIC_PASSWORD= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
                                   #_#_:creds :gpg}} ; ~/.lein/credentials.clj.gpg (optional)
  :dependencies [[org.clojure/clojure "1.10.3"]
                 [com.datomic/datomic-pro "1.0.6362"]]) ; peer mode
(defproject app "0.1.0"
  :dependencies [[org.clojure/clojure "1.10.3"]
                 [com.datomic/datomic-free "1.0.6362"]]) ; peer mode (free version)

Console

  • Console UI runs at http://localhost:8080/browse
# run console
./bin/console \
  -p "8080" \
  "dev" \
  "datomic:dev://localhost:4334/"