Dear Erlang Community,

I'd like to tell you about a project that you might have
heard about, but don't know a lot about:

Enter CouchDB.

CouchDB is written an Erlang (why would I write otherwise),
but not very well established in the Erlang community. I'd
like to change this fact with the help of this email.

I went to the Erlang eXchange last week only to discover
that when I tell you guys about CouchDB, you get very
enthusiastic. Now, not all of you were in London and
I'd like you to give a chance to get enthusiastic, or at
least interested. (Sounds a bit like I would make a decent
sales person, not bad for a programmer...)

CouchDB is a distributed document database written in
less then 7k lines of pure Erlang (with a bit of C mixed in).

Here's the pitch:

  Most data is not inherently relational, yet relational
  databases are often the default when it comes to
  storing data. The downside is that an RDBMS is hard
  to learn and use upfront and hard to scale later. You
  have been working with non-relational databases for
  decades, you know that they are easier to use and
  easier to scale.

  CouchDB's main API is RESTful. It talks HTTP natively.
  This helps to reduce the learning curve further since
  everybody knows HTTP and all our tools support HTTP.

  All you need to talk to CouchDB is a browser!

  CouchDB stores data in the JSON format (through the API
  and in Erlang terms internally). It targets not only Erlang
  developers but everybody and JSON allows it to read and
  write everybody's data.

  CouchDB is built for concurrency. It stores data in an
  ACID compliant MVCC data store. It supports any
  number of parallel read and serialised write access.
  The data storage module is optimised to reduce
  hard-drive head seeks on reads and writes. It never
  overwrites data that is safe on disk and as a result,
  when it reports a write operation to be finished, the
  database files are guaranteed to be consistent on
  disk. If it crashes or if the hardware goes away,
  CouchDB just restarts later and is up and running
  without the need to run any lengthy consistency checks.

  To make sense of the no-schema data you can store
  with CouchDB, it support views. A map-reduce powered
  mechanism that allows you to filter, collate and
  aggregate your data that can be massively parallelised.

  A single-node database is no good in the modern
  computing world. To mitigate this problem CouchDB
  comes with a world-class replication system (that is
  influenced by the Lotus Notes database, but don't tell
  anybody!). Replication solves the general problem
  of data synchronisation. Be it for fault tolerance,
  load balancing or distributed- (and offline-) work
  environments. It comes with automatic conflict
  detection and resolution. Pretty awesome.

  Finally, CouchDB is free software released under the
  BSD-like Apache 2.0 license.

  See http://incubator.apache.org/couchdb/docs/overview.html
  for a more complete overview of what CouchDB wants to be.

  A lot of things are working today and are working well, but it
  still misses a few crucial features. Maybe you can jump aboard
  and help out? If you do, get in touch.

  --

Thanks for listening, this was a long read and I apologise,
but I couldn't find less words to tell the same. To wrap
this up:

  You guys seem to be running an awesome party,
  can we join?

Cheers
Jan
--
PS: You can find CouchDB at http://couchdb.org/ and you
can even follow it on Twitter at http://twitter.com/CouchDB

Reply via email to