Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introducing Datomic

Introducing Datomic

Presented at the Brisbane NoSQL group

lachlanroche

October 30, 2014
Tweet

More Decks by lachlanroche

Other Decks in Programming

Transcript

  1. Peer library • Query engine runs in your application •

    Data access via Storage Service • Submits changes to and accepts updates from Transactor • API for Clojure and JVM languages • REST peers (alpha)
  2. Transactor • Transactor is a process • Single Transactor in

    a system • Processes transactions • Serialized transaction processing • ACID
  3. Storage service • Stores immutable values • Dynamo DB, Riak,

    Cassandra, Couchbase, Infinispan, SQL • Memcached support
  4. Data model • Immutable data - facts don’t change •

    Atomic data - the datom • Minimal schema • Database is a set of datoms, indexed in various ways • Database as a value
  5. Datom • {entity, attribute, value, transaction} • Attribute definition is

    the only schema • Attributes have type, name, cardinality
  6. Time • Time is built in • Transactions are ordered

    • Transactions are first class entities • Can open database at as-at a point in time, including now, or since a point in time, or for a window in time
  7. Querying • Datalog • Implicit joins • Queries can include

    arbitrary functions from your application • Queries can run on db, or application data, or a mix