Speaker Topics - No Fluff Just Stuff

Datomic: Just The Facts, Ma'am

Imagine the perfect database: it would be easy to code against, without using or needing an ORM (such as Hibernate). It would be easy to setup, and easy to test against. It would be flexible enough for you change your mind about how data is stored … even after your application is in production. It would be fast, and scale from tiny applications to massive ones. It would be ACID. It would be deployable in the cloud. And it would never forget anything. That's Datomic, the database that stands to change everything.

Datomic is a new product from Relevence (it is not open source, but has a limited Free edition). Datomic is implemented in Clojure, but has a Java API as well as a REST web interface.

Datomic challenges you to rethink what your database is: not a scratchpad of rows and columns, but a set of entities and facts about those entities. Datomic side-steps the challenges of object/relational mapping by being data oriented (not rows and columns, and not objects).

Datomic breaks the traditional ties between identity and state: where a traditional database updates rows in place, and loses those prior values, Datomic records new facts about entities. Since updates occur inside transactions, it is possible to query the database as it existed in the past, or even query the database about how entities have changed over time.

Complete SQL queries got you down? Datomic uses the awesome Datalog logic programming language instead. Worried about scaling? Datomic shifts the cost of queries from the database to the clients (or “peers”) and its data model is amazingly cache friendly. Concerned about data changing during queries? Don't be … in Datomic the database is a value, consistent to a specific moment in time, even as changes occur later. Datomic understand time in a way traditional databases simply can not. Can't figure out how to efficiently implement inheritance? Datomic is about data not objects; any entity can have any attributes you application wants, so inheritance has no meaning.

Free your mind from what databases are and come see what databases should be. It's easy to set up, easy to get going … and hard to go back to anything else, SQL or otherwise.


About Howard Lewis Ship

Howard Lewis Ship is the original creator of the Apache Tapestry project, and is a noted expert on Java framework design and developer productivity. He has over twenty years of full-time software development under his belt, with over fifteen years of Java. He cut his teeth writing customer support software for Stratus Computer, but eventually traded PL/1 for Objective-C and NeXTSTEP before settling into Java.

Howard has been developing financial and e-commerce applications in 100% Clojure since 2012.

Howard currently works for Wal-Mart's Global E-Commerce division. He lives in Portland, Oregon with his wife Suzanne, and his children, Jacob and Olivia.

More About Howard »