Slide 1

Slide 1 text

Intro to Datomic Brisbane NoSQL Oct 2014 @lachlanroche

Slide 2

Slide 2 text

Architecture • Peer library • Transactor • Storage service

Slide 3

Slide 3 text

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)

Slide 4

Slide 4 text

Transactor • Transactor is a process • Single Transactor in a system • Processes transactions • Serialized transaction processing • ACID

Slide 5

Slide 5 text

Storage service • Stores immutable values • Dynamo DB, Riak, Cassandra, Couchbase, Infinispan, SQL • Memcached support

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

Datom • {entity, attribute, value, transaction} • Attribute definition is the only schema • Attributes have type, name, cardinality

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

Querying • Datalog • Implicit joins • Queries can include arbitrary functions from your application • Queries can run on db, or application data, or a mix

Slide 10

Slide 10 text

Links • http://www.datomic.com/