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.