Ayende @ Rahien

My name is Oren Eini
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:


+972 52-548-6969

, @ Q c

Posts: 6,026 | Comments: 44,842

filter by tags archive

The joy of schema less development

time to read 2 min | 249 words

imageAs the author of a schema less database, I find myself in the strange position of the barefoot shoemaker. I need to explain a bit. Our current storage engines, Esent and Munin (which was designed mostly to be like Esent) have rigid schemas. There are tables, and indexes, etc. This means that features that touch the storage layer tend to be much more complex. They require migrations, adding new features that require storage means that we have to create new storage tables, or modify indexes, or any number of a bunch of stuff that we developed RavenDB so our users wouldn’t have to.

I have been working with our managed implementation of LevelDB quite a lot lately. In order to do more than merely write tests for this, I tried to create a feature complete feature, an aggregation engine. The code is not production worthy (yet!), but what struck me quite hard was the fact that except for the fact that the storage layer is full of bugs (well, that is why I was writing stuff on top of it, to expose it), I had a blast actually working with it.

I could make modifications & changes with hardly any friction, and it was a real pleasure to start working with things in this fashion.


Harry McIntyre

Schema-less is great, but it's not totally migration free. I think I need a tool to help me figure out what's changed when I deserialize from the db, maybe a visual with the data thats coming out, and the class that I'm trying to map it to...

Khalid Abuhakmeh

For me that is one of the major joys of working with OSS tools and frameworks. You don't always have to know what's going on, but you can see what is going on when you have to. Excited to try out the stuff you've been working on.

Catalin Pop

You always have a schema! The beauty of the storage engine NOT knowing about it, is that schema knowledge stays where it should stay, only at the client.

P.S. A JSON document is self describing (structured and named elements), therefore it's "schema" is contained inside it, sort of ...

Chris Marisic

Catalin true the data is absolutely not schema-less, it's just that the schema is loose not rigid.

Comment preview

Comments have been closed on this topic.


No future posts left, oh my!


  1. Technical observations from my wife (3):
    13 Nov 2015 - Production issues
  2. Production postmortem (13):
    13 Nov 2015 - The case of the “it is slow on that machine (only)”
  3. Speaking (5):
    09 Nov 2015 - Community talk in Kiev, Ukraine–What does it take to be a good developer
  4. Find the bug (5):
    11 Sep 2015 - The concurrent memory buster
  5. Buffer allocation strategies (3):
    09 Sep 2015 - Bad usage patterns
View all series


Main feed Feed Stats
Comments feed   Comments Feed Stats