Datomic

Datomic tar automatisk vare på gammel data for deg. Jo mer du skjønner om Datomic, jo oftere vil du oppdage at mange databaserelaterte problemer ikke er så unike som du kanskje trodde.

I og med at Datomic skiller seg radikalt fra andre databaser, er det keitete å oppsummere det hele med noen få setninger. Det krever mer enn to minutters skumlesing for å forstå hva slags problem Datomic løser.

Men for å liste opp noen kule ting:

  • Lesing og skriving er skilt helt fra hverandre. CQRS, altså.
  • All lesing skjer via et immutable database-objekt, ikke en flytende connection. Når du ber en connection om en database, vil du få den nyeste, og den vil aldri endre seg, så du kan kjøre spørringer i mange timer hvis du vil, uten noen form for synkronisering.
  • Du kan også be om databasen slik den så ut ved en gitt dato. Denne er også immutable når du har hentet den ut.
  • NOSQL, relasjonell, og ACID. Det går altså an å ha konsistent data uten SQL, hvem skulle trodd det?
  • Du kan gjøre spørringer på endringer gjort til dataene dine over tid.
  • Du kan lese ut transaksjoner fra databasen. Transaksjoner er altså ikke skjulte og interne, men spørrbare entiteter.
  • Transaksjoner kan tagges med din egen metadata, f.eks «hvem gjorde dette».

I hovedsak løser Datomic et viktig problem: for de fleste domener er gammel data verdifull, og bruker du Datomic, blir gammel data tatt vare på for deg, uten at du trenger å modellere det med sindige join-tabeller og annet snacks.

Den er også proprietær, med en ganske voldsom lisens. Heldigvis har Kodemakere bare brukt gratis-versjonen enn så lenge, så vi har lov til å bruke datomic til «nefarious purposes». Vi kan til og med blogge kritisk om Cognitect, firmaet bak Datomic. I motsetning til stakkarene som har punga ut. Betal-utgaven trenger man først og fremst når man skal skalere, gratis-versjonen er helt fin, stabil og trygg.

Våre anbefalinger

Real-World Datomic: An Experience Report

Craig Andera snakker om erfaringer med å bruke Datomic på et større prosjekt, og kommer med flere nyttige poenger underveis. Særlig bra er hans gjennomgang av indekser. Se foredraget

The Functional Database

Dette foredraget av Rich Hickey introduserer og forklarer ideene bak en funksjonell database. Hva om man distanserer seg fra tradisjonelle databaser og sier at data kun kan legges til? Betyr dette at man kan modellere data over tid? Og hva er egentlig fordelen med at data aldri endrer seg? Dette er noen av spørsmålene som blir besvart gjennom en presentasjon som utfordrer etablerte «sannheter». Se foredraget

Keep Chocolate Love Atomic

Stuart Halloway skriver om Datomic og hvordan vi så lett faller tilbake til destruktiv oppdatering, når vi med litt ynde kan legge til facts. Må leses av alle som skal bruke Datomic. Les artikkelen

Våre bloggposter

Annotating Datomic transactions

En artikkel om Datomics transaksjoner, og hvordan de kan utvides med app-spesifik informasjon for bedre auditing og mer. Les posten

Querying across Datomic databases

Et konkret eksempel på hvordan du kan gjøre datalog spørringer over flere databaser samtidig med Datomic. Les posten

Våre presentasjoner

WTF is Datomic?

Introduksjon til hvordan i alle dager en immutable database kan funke, og hvorfor det er bra greier. Se video

Talk: I put 7 years of meal data in Datomic - Here's what I learned

Datomic is an append-only database, designed from the ground up with modern applications and hardware in mind. It never loses data, it has an RDF-like approach to schemas, it's really fast, and it has a powerful query language borrowed from Prolog that expresses queries as data structures. In short: it's pretty awesome. Se koden

The imminent revolution of functional append-only databases

I de fleste domener har gammel data høy verdi. Det bør ikke være ditt ansvar å løse dette manuelt med tradisjonelle muterbare databaser. Få en introduksjon til ny grensesprengende database-teknologi som løser dette problemet for deg. Se video