Hi László,

On 3 Apr 2009, at 15:44, László Bácsi wrote:

this is my first mail to the list so I'm László Bácsi from Hungary working
for Virgo Systems as the chief Ruby engineer.

We're in the planning stages for a client project. This involves a number of models some with overlapping properties and a lot of associations between models. For example, there's an Institute model which there are 9 different types of, each with their own specific properties and 6-8 properties which are available for every type of Institute. Additionally each model has some
properties which needs i18n.

Designing this with RDBMS is a nightmare. I was thinking about using
CouchDB, but I have a lot of fears regarding this:

Lack of experience: there will be at least 3 people working on the backend side of the project excluding me and the others have no experience with
CouchDB, schema-less databases and MapReduce.

I found that the CouchDB way of things takes a little getting used to, but only if you have a background in relational databases. If you can leave that behind (or haven't been "spoiled" yet :), CouchDB is quite approachable. There are a number of examples on how to do queries in M/R in the wiki* and some more in the presentations, that you can also find on the wiki**. Geoffrey Grosenbach's excellent screencast on CouchDB & Rails*** is also a good introduction into thinking in documents (of the 90 minutes, only 20 are Rails specific, so it is worth watching / showing the screencast). Lastly, *plug*, there is "the book"****, the available chapters already include some significant material and while we are adding more, you and your colleagues will have advanced with CouchDB too :)

* http://wiki.apache.org/couchdb/View_Snippets
** http://wiki.apache.org/couchdb/Presentations
*** https://peepcode.com/products/couchdb-with-rails
**** http://books.couchdb.org/relax


Early stages: I've been using CouchDB in a personal project since December. During this time I had one occasion where I had to upgrade to get a new
feature and that upgrade needed a newer Erlang version which I had to
compile from source because there were no packages, etc. Even after the successful installation I had to rewrite some of my code to accommodate
changes in CouchDB's handling of design documents.

CouchDB is still a moving target, but changes are usually minimal and
well documented*. Migrating very large database to newer file formats
can be a little tricky, but it is not impossible.

* http://wiki.apache.org/couchdb/Breaking_changes


ok, this is becoming long, so I wrap up. Would you build a project like this which would need 4-5 month of work with a 4-5 people team with no experience
on CouchDB? If yes how would you approach the problems I mentioned?

If you feel confident that you can learn CouchDB along the way (I'd say yes), and the the support resources available (this list is terrific, in my opinion) are sufficient for your needs, CouchDB is not the worst choice. If you get your
developers up to speed in a reasonable amount of time, you might want to
publish a proposed architecture of your system here and the community can
give you a review and possible hints and tips for improvements.

Maybe members of the list that are already basing a project on CouchDB
can share their experience?


Cheers
Jan
--

Reply via email to