Saturday, January 29, 2011

CouchDB rocks, so I'm going to make it relational.

Here is the plan, and I'm soliciting for help to start planning and building an open source project.

About two years ago, I build my own programming language called Kira to solve "the scalability problem", and I was looking at how a schema combined with how it was used (via my own LINQ) to study patterns. Needless to say, that studying those patterns were fruitful in discovery of the emerging NoSQL solutions. You can model each NoSQL solution using a relational DB, but you either get ease of scale or performance. My interest was starting at a purely relational model and then solving the system using NoSQL systems.

I want to say something: this problem is pure geek crack. Unfortunately, my study was pushing me more and more away from SQL and into NoSQL. Here are the things that I can build anything with:
  • S3
  • Redis
  • CouchDB
  • node.js (+ otto)
Now, there is a certain elegance to SQL from a support point of view. When you build something from a NoSQL solution, then you are indebted to build a management layer for what-ever you built. You tend to always have to do this, but NoSQL forces you too early on in the development process. While this is a problem for many businesses now, it is opportunity for hackers/geeks to build something awesome like phpMyAdmin and n00bify NoSQL.

Right now, I think CouchDB is ultra awesome and ultra easy. However, it has some business problems that I think are naturally solvable via node.js (due to JavaScript portability).

I'm solving a couple with otto and vacuum now, but those are primarily experimental. I would like to do something a bit more robust and general.

No comments:

Post a Comment