Recommended Reading : An Archaeology-Inspired Database

Yoav Rubin shows how a change in a common perspective affects the design and archdb2implementation of a well-studied type of software: a database.  In this excellent examination of how a shift in perspective changes everything, Yoav provides us with a rich examination of what we thought we knew but it turns out that perhaps there are better ways to approach databases. “Database systems are designed to store and query data. This is something that all information workers do; however, the systems themselves were designed by computer scientists. As a result, modern database systems are highly influenced by computer scientists’ definition of what data is, and what can be done with it.

For example, most modern databases implement updates by overwriting old data in-place instead of appending the new data and keeping the old. This mechanism, nicknamed “place-oriented programming” by Rich Hickey, saves storage space but makes it impossible to retrieve the entire history of a particular record. This design decision reflects the computer scientist’s perspective that “history” is less important than the price of its storage.”

As Yoav puts it succintly -If you were to instead ask an archaeologist where the old data can be found, the answer would be “hopefully, it’s just buried underneath”.

Leveraging the richness of the Clojure language and 360 lines of code – we have an “archeology-inspired” database. To read the article, select:


Clojure Example : Building an Online Community with Clojure, Datomic, Angular and Ansibile

I ran into this very nice article the other day that goes into the how of creating an online community. Besides using Clojure, it also uses Datomic as the database, Angular for building the front-end and Ansible and Vagrant for provisioning and deployment.  I just started using Vagrant on my desktop to provision a number of VirtualBox instances for some search engine work I am doing.  This article provides a nice level of depth to the  discussion of a number of technologies and shows more than a basic outline of the architecture.