Datomic

Finalist, Rotterdam / 16-05-2013

In de afgelopen jaren hebben we een sterke opkomst gezien van de NoSQL database. Een type database met belangrijke voordelen op het gebied van schaalbaarheid, maar ook keerzijdes als niet-gegarandeerde consistentie. Voor veel use cases is dat niet erg, bijvoorbeeld voor een Amazon die sporadisch nee moet zeggen tegen klanten die net een boek hebben besteld dat toevallig een paar seconden eerder was uitverkocht. Maar voor andere use cases kan het ontbreken van dergelijke garanties juist een reden zijn om geen NoSQL database in te zetten.

Dit soort overwegingen heeft geleid tot de opkomst van een nieuwe database-categorie. Dat wil zeggen, databases die net als NoSQL arbitraire schaalbaarheid nastreven, maar tegelijk ook ACID garanties afgeven. Eén van die databases is Datomic - de laatste creatie van Clojure uitvinder Rich Hickey.

Datomic

Datomic is een nieuw soort database, niet alleen omdat het schaalbaarheid én consistentie nastreeft, maar ook omdat het is gebouwd op een nieuwe set beginselen:

  • Data wordt opgeslagen op basis van individuele feiten, als combinaties van entiteit-attribuut-waarde, plus de transactie - zgn. datoms.
  • Deze feiten zijn immutable, en zijn dus in tegenstelling tot rijen in een traditionele database niet meer te veranderen.
  • De data kan wel op verschillende momenten in tijd worden bekeken, om bijvoorbeeld de feiten van een week geleden te achterhalen.
  • De verantwoordelijkheid voor transactionaliteit en storage is gescheiden in aparte componenten, lezen en schrijven zijn hiermee ontkoppeld.
  • Om de data te beschrijven is weliswaar een database schema nodig, maar wel eentje die zeer flexibel is.
  • Om gegevens op te halen wordt een declaratieve querytaal gebruikt - niet SQL, maar Datalog wat meer op Prolog of SPARQL lijkt.

Deze sessie is bedoeld als een introductie op Datomic, misschien wel de eerste echte functionele database, en is om die reden alleen al interessant om te bekijken. Naast een uitgebreide toelichting op de beginselen wordt de architectuur beschreven alsmede de ontwerpbeslissingen die hieruit voortvloeien. Voor deze workshop is kennis van Java vereist en voor hands-on meedoen heb je een laptop nodig met Java 6 of 7 en Maven 3.0.x.

Spreker

De workshop wordt verzorgd door Martin van Amersfoorth. Je kunt hem volgen op Twitter: @mamersfo.


Register for this event

This event is not open for registration
Qwan 5dff39510bacfcefb54e89f953eddfc1a7a21185b7128d96ff6b466f56acb6d9
Macaw 06e9331a5321067b592bf45ea39db7df6792dc976000d24d3ee4043d99203514
Finalist e304343cdbeb0996cc1e7a26527993a5fa2db87ca53a81fb15dca22a35d7f28c

Devnology is a non-profit organisation and thus depends on sponsors. Thanks to our wonderful sponsors all Devnology events are free!