Starting from a simple setup:
{:deps {com.datomic/peer {:mvn/version "1.0.7491"}
org.slf4j/slf4j-simple {:mvn/version "2.0.17"}}}
And trying to connect into a dynamodb connection, it fails with a "s3" error:
user=> (require '[datomic.api :as d])
nil
user=> (d/connect "datomic:ddb://us-east-1/prd/db")
[main] INFO datomic.process-monitor - {:event :metrics/initializing, :metricsCallback clojure.core/identity, :phase :begin, :pid 311, :tid 3}
[main] INFO datomic.process-monitor - {:event :metrics/initializing, :metricsCallback clojure.core/identity, :msec 0.696, :phase :end, :pid 311, :tid 3}
[main] INFO datomic.process-monitor - {:metrics/started clojure.core/identity, :pid 311, :tid 3}
[clojure-agent-send-off-pool-0] INFO datomic.domain - {:event :cache/create, :cache-bytes 502267904, :pid 311, :tid 25}
[clojure-agent-send-off-pool-0] INFO datomic.process-monitor - {:AvailableMB 895.0, :ObjectCacheCount 0, :event :metrics, :pid 311, :tid 25}
Execution error (ClassNotFoundException) at jdk.internal.loader.BuiltinClassLoader/loadClass (BuiltinClassLoader.java:580).
com.amazonaws.services.s3.model.MultiObjectDeleteException
From this error message, it is pretty hard to find that datomic actually requires an extra dynamodb dependency to work.
https://docs.datomic.com/operation/storage.html#dynamodb-aws-peer-dependency
Possible fixes:
- A better error message
- Adding this error message to datomic docs, as a "common errors" - do google will be able to find.