couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Antony Blakey <>
Subject Re: Erlang vs Scala
Date Tue, 07 Apr 2009 11:07:24 GMT
This thread is somewhat quixotic for the CouchDB list.

Having said that, I'm doing  Scala implementation, although with some  
significant architectural differences from CouchDB:

1. Using binary data rather than JSON - hence no attachments, and a  
clear separation of data and metadata e.g. no injection;

2. A more explicit layering/modularity i.e. a toolkit rather than a  

3. A focus on mechanism rather than policy, allowing CouchDB style  
replication as well as Bayou/PRACTI models using different consistency/ 
coupling/deployment tradeoffs such as monotonic writes, local ACID;

4. No specific app-server mechanisms - use existing JVM technologies  
and frameworks for that e.g. purely a database;

5. Pluggable indexing including map/reduce, obviously using any  
language available on the JVM e.g. clojure/java/javascript/scala/jruby/ 
groovy etc;

6. Clustering using Terracotta.

The benefit of Scala is primarily that it is on the JVM, so you can  
use the existing infrastructure, both in development and for  
deployment. Users get all of the management etc tools available for  
the JVM environments, and it certainly eases the political issues of  

IMO you can also do this in Clojure - both Scala and Clojure are  
focussed on concurrency and well suited to implementing systems in  
this space. In the end though, after starting in Clojure, Scala's  
maturity was a deciding factor.

Antony Blakey
CTO, Linkuistics Pty Ltd
Ph: 0438 840 787

He who would make his own liberty secure, must guard even his enemy  
from repression.
   -- Thomas Paine

View raw message