CouchDB is open-source document-oriented database system, which is written in Erlang programming language and designed for simple horizontal scalability and local replication throughout different devices. Commercial subjects as CouchBase and Cloudant support CouchDB.
CouchDB is in some areas relatively similar to other document storages as are e. g. MongoDB or Lotus Notes. Instead of saving data in lines and columns following the example of relational database systems, it manages CouchDB collections of JSON documents. Documents belonging to collections don’t share the scheme together. The query capacities are offered through views. Views define aggregation functions and are filtrated comparably to e. g. at MapReduce.
Views are typically stored in database and their indexes are being continuously renewed. Although some queries can result in temporary views. CouchDB supports system, which mediates views through external socket servers and with the usage of protocols built on JSON. It allows servers to be created in many varied languages.
CouchDB is established on RESTful http API, to which are many freely available clients. Furthermore, with the help of plugin architecture is possible to achieve the usage of different languages for view servers. As example can be used default JavaScript, Perl, Ruby, Python, PHP or Erlang. Support for other languages can be easily added. CouchDB proposal and its philosophy comes fully from Web architecture in the area of concept, sources and methods.
CouchDB uses many software projects and websites. As example can be used Ubunt distribution, where it serves for directory’s saving or synchronization, Tomboy, where it serves for notes or Firefox bookmarks with the use of one.ubuntu.com service.