Rethinking Persistence

People are starting to catch on to two very powerful ideas - that functional languages are ideal for building persistent storage repositories, and that a huge subset of web applications don't need a relational data model.

Several of the more interesting solutions I've come across:

  • The Depot server implements a minimal REST based protocol for accessing and updating content objects over HTTP. It's designed with Flash and Javascript apps in mind, and provides a nice client API for acessing content addressed via URL paths.
  • CouchDb is a document oriented database accessible via an HTTP REST protocol, and supporting a formula language for generating "virtual tables" from raw content data. I'm not yet sure what I think of this document oriented development model, but it's worth further consideration.

CouchDb is implemented in Erlang. I'm not 100% sure about Depot, but I have a strong suspicion that it's Haskell. Many people consider these to be fringe languages, but there are strong reasons for their growing popularity in this space.