First off, it’s written in erlang. That’s not a showstopper, but it’s odd. Maybe it’s something erlang can do that nothing else can. Still, an odd requirement that might have support issues, particularly in hosted environments.
It uses some sort of distrubuted version control, but I don’t know what. That’s smart, but could cause headaches for “control” such as publishing or other kinds of workflow (like bug resolution or requirements change process).
The basic idea is what I’ve felt was best all along, a versioned, semi-semantic document. But CouchDB treats a file as a hash of name/value pairs, and includes lists [what about enumerations?]. I don’t know how it handles attribute-based searching (well, I do, it uses map-reduce) or versioned searches. Maybe that’s something erlang does well.
Anyway, I’m excited to learn more about it, but just a little bit skeptical that it might be a “pure” solution, meaning a self-contained app, not really a database at all. I’m thinking like Naked Objects, an interesting concept, but unusable unless you their UI and everything.
The first link is about a PHP OOP API (bingo!) for using couchdb, so maybe I’ll get started by taking a look at that.