D

Datomic Blog

blog.datomic.com · Company blog · on HN since 2012

The Datomic team at Cognitect writes about the Datomic database, covering schema design, features, cloud offerings and licensing.

What HN saysHN commenters cite it on schema growth, and note that Datomic is now free. Some see immutable databases as overlooked.
49HN people shared it
22linked it in comments
46stories submitted
1.7Kstory points
7 months agolast shared
2012people per year2026

Most-shared posts

  1. 1
    Codeq
    11 people · 344 points · first shared 2012 · 52 comments on HN
  2. 2
    Datomic Is Now Free
    6 people · 175 points · first shared 2023 · 45 comments on HN
  3. 3
    The Ten Rules of Schema Growth
    5 people · 15 points · first shared 2017 · discussion on HN
  4. 4
    Excision in Datomic
    4 people · 69 points · first shared 2013 · 39 comments on HN
  5. 5
    Datomic Local
    3 people · 31 points · first shared 2023 · 2 comments on HN
  6. 6
    Datomic Cloud
    2 people · 273 points · first shared 2018 · 106 comments on HN
  7. 7
  8. 8
    Datomic adds Riak and Couchbase Support
    2 people · 9 points · first shared 2012 · discussion on HN
  9. 9
    Datomic Analytics (Preview)
    2 people · 6 points · first shared 2019 · discussion on HN
  10. 10
    Datomic Cloud is now free
    2 people · 2 points · first shared 2023 · discussion on HN
  11. 11
    Codeq: Git Repositories in Datomic (2012)
    2 people · 1 points · first shared 2016 · discussion on HN
  12. 12
  13. 13
    Datomic Free Edition
    1 people · 132 points · first shared 2012 · 78 comments on HN
  14. 14
    Datomic Pro Starter Edition
    1 people · 111 points · first shared 2013 · 57 comments on HN
  15. 15
    Fixing Bad Data in Datomic
    1 people · 103 points · first shared 2014 · 16 comments on HN

What HN people wrote when they linked it

beders · 2026-01-05
While the author mentions that he just doesn't have the time to look at all the databases, none of the reviews of the last few years mention immutable and/or bi-temporal databases. Which looks more like a blind spot to me honestly. This category of databases is just fantastic for industries like fintech. Two candidates are sticking out. https://xtdb.com/blog/launching-xtdb-v2 (2025) https://blog.datomic.com/2023/04/datomic-is-free.html (2023)
xmlblog · 2023-04-27
> If you have 10s or 100s of app servers that has the exact same working set in memory, it's probably not worth it. The introduction of intelligent application-level partitioning [1] and routing schemes can help one balance cost and performance. [1] https://blog.datomic.com/2023/04/implicit-partitions.html
stuarthalloway · 2021-04-20
Do you have a specific example? Datomic is great for evolving in prod (https://blog.datomic.com/2017/01/the-ten-rules-of-schema-growth.html), and Clojure is a great language for generating data (or ETL) when you want to make radical changes in dev.
sgrove · 2013-11-08
Wow, very cool indeed. We worked on an open-source community[1] tool using Datomic/Codeq[2], and the ops portion was/has been pretty unpleasant. I'd love to see Datomic-as-a-Service popup, even as a only-meant-for-starter-projects, just so that experimenting with it could be that much easier. That might be possible with the new license, depending on how the Cognitect team sees it. [1] The service is a frontend to Codeq, having imported many Clojure repos: http://www.jidaexplorer.com/ [2] http://blog.datomic.com/2012/10/codeq.html EDIT: Added links.
kjqgqkejbfefn · 2024-02-04
https://blog.datomic.com/2012/10/codeq.html >codeq ( 'co-deck') is a little application that imports your Git repositories into a Datomic database, then performs language-aware analysis on them, extending the Git model down from the file to the code quantum (codeq) level, and up across repos. By doing so, codeq allows you to: >Track change at the program unit level (e.g. function and method definitions) >Query your programs and libraries declaratively, with the same cognitive units and names you use while programming >Query across repos
Clever321 · 2023-10-01
I really like the datomic guidelines for change, which negates a category of migration headaches: https://blog.datomic.com/2017/01/the-ten-rules-of-schema-growth.html
rippeltippel · 2023-04-28
> if you're ever introducing a new language, regardless of context, throw some code samples This is not a new language, it's a tool for Clojure. I really appreciate the contributions that Nubank is making (after making Datomic free, https://blog.datomic.com/2023/04/datomic-is-free.html). My only nitpick this time is that I would have liked some screenshots/screencasts of the this new tool in action.
slifin · 2019-08-27
http://blog.datomic.com/2012/10/codeq.html I think codeq 2 is being worked on
puredanger · 2018-01-17
This is the mobile link, better link is http://blog.datomic.com/2018/01/datomic-cloud.html
aboodman · 2016-10-16
If you take a language parser and pipe the resulting AST into Noms, you basically get something like codeq (http://blog.datomic.com/2012/10/codeq.html).
alpyne · 2016-06-07
Sourcegraph folk, are you aware of Rich Hickey's codeq [0][1] for clojure: codeq allows you to track change at the program unit level (e.g. function and method definitions) and query your programs and libraries declaratively, with the same cognitive units and names you use while programming [0] http://blog.datomic.com/2012/10/codeq.html [1] https://github.com/Datomic/codeq#codeq
harperlee · 2016-05-30
For joining vcs (git) plus db (datomic), there's an interesting library called codeq: http://blog.datomic.com/2012/10/codeq.html?m=1
juliangamble · 2016-04-10
Rich Hickey's (of Clojure fame) Datomic database uses Datalog as its query language. http://docs.datomic.com/query.html http://blog.datomic.com/2015/01/datalog-enhancements.html Nathan Marz's (of Twitter startup fame) Cascalog library (also implemented in Clojure) uses Datalog as its query engine to generate Hadoop jobs. http://alexrobbins.github.io/cascalog-intro/#/step-14 http://clojure.com/blog/2012/02/03/functional-relational-programming-w…
danneu · 2013-11-09
Excision removes the data. In other words, you can remember that you forgot, but you can't remember what you forgot. http://blog.datomic.com/2013/05/excision.html What you're describing is plain ol retraction. If you retract your credit card number, then someone can just surf back in time to grab it. That's why you'd excise it.
n72 · 2013-05-25
Relatedly, see Rich Hickey's http://blog.datomic.com/2012/10/codeq.html
taliesinb · 2012-11-28
Yeah, it kinda sucks -- mostly one learns to create new copies of definitions/code when doing substantial changes, which the notebook interface makes quite convenient. Or use a full blown editor like Eclipse. The holy grail as I see it would be storing the entire edit history of the document as a git-like tree of modifications, which is entirely possible because Mathematica notebooks are themselves built out of Mathematica expressions (see for example Cell http://reference.wolfram.com/mathematica/ref/Cell.html). This would be similar to Rich Hickey's work on language-aware version control (http://blog.datomic.com/2012/10/codeq.html)
chillax · 2012-11-02
In related news Riak was in fact added as supported storage today: http://blog.datomic.com/2012/11/riak-and-couchbase-support.html
brandonbloom · 2015-02-01
> I'm curious to know what the actual data structure is. This tweet from Rich provides the missing puzzle pieces: "The log is not a btree - used for durability, not query. Separate indexes combine memory with batch-updated storage." https://twitter.com/richhickey/status/420910382538948608 Restating in my own words: The transaction log is essentially just a stream of asserts and retracts with metadata. That's used for durability first and echoed to clients/peers and the indexing engine. The indexing engine asynchronously batch updates indexes (which probably are b-trees, but have no need to be streaming append-only style in this context). The peers query a joined dataset of the latest consistent indexes plus the set of unindexed transactions. > As append-only B tree is persistent. You're right, it can be. However, the popular append-only b-tree systems (such as CouchDB) are actually append-only B+-tree systems. That "+" means the leaves of the tree are intrusively linked together, and so are not persistent. You can not "fork" such trees cheaply. > losing information is a specific feature that was added to git http://blog.datomic.com/2013/05/excision.html

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close