Insights after 11 years with Datomic [video]

Adoption and Popularity

  • Many are surprised Datomic isn’t more widely used, given its design; others say the low adoption is understandable.
  • Commonly cited blockers:
    • Long history as proprietary, expensive software; now free “as in beer” but still closed source.
    • Tight association with Clojure and the JVM; non-JVM shops (Python/JS/Elixir) rarely consider it.
    • Lack of standard deployment ergonomics (no official Docker image, Cloud tied to AWS).
    • Difficult sell to management: critical data in a proprietary system from a small vendor.

Technical Strengths and Appeal

  • Immutability and append-only design make debugging, auditing, and time-travel queries much easier.
  • Full transaction log with rich metadata helps answer “what changed, when, and together with what else?”
  • Read scaling via peers running the query engine locally is seen as elegant.
  • Conceptually attractive to those comfortable with Datalog and functional programming; some call it “a marvel.”

Technical Pain Points

  • No query optimizer; query performance can vary massively based on clause ordering, which many see as a sharp edge.
  • Memory-heavy architecture (in-memory indexes on peers/transactor) raises scaling and cost concerns.
  • Datalog is unfamiliar; people already struggle with SQL, and writing queries as strings in Java feels clumsy.
  • Tooling gap: no pgwire/SQL compatibility, poor integration with common DB tools and ORMs.

Licensing, Ecosystem, and Strategy

  • Closed-source nature raises lock-in and longevity fears; “no Valkey move” if the steward changes direction.
  • Business strategy around Datomic Cloud + AWS and weak Java-first story are viewed as missteps.
  • Some argue the creators optimized for their own problems and expert users, not mainstream teams needing “easy.”

Comparisons and Alternatives

  • Many note you can approximate Datomic-style history with append-only tables, triggers, or event sourcing in Postgres/Oracle, though often with complexity/performance trade-offs.
  • Alternatives like XTDB, TerminusDB, temporal tables in MariaDB/Oracle, and custom event stores are discussed; temporal features are seen as valuable but often under-prioritized.