Insights after 11 years with Datomic [video]

Datomic, a JVM-based, append-only database with powerful time-travel and auditing features, is widely praised for its data model but questioned for its low adoption compared with mainstream relational systems like Postgres. Commenters point to years of proprietary licensing, tight coupling to Clojure and AWS, lack of SQL and standard tooling, operational complexity, and performance footguns as major barriers, despite Datomic now being free to use. Many argue that similar temporal and immutable capabilities can be approximated on top of traditional databases or newer open-source alternatives such as XTDB, making Datomic’s advantages feel too niche for most teams.

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.