CouchDB: A document-oriented database accessible via a RESTful HTTP/JSON API

CouchDB was accepted for incubation at the Apache Software Foundation a couple of months ago. My congrats to the development team! It’s a very interesting and challenging project, and the fact that it was accepted for incubation will definitely get the team exited.

What is CouchDB?

  • A document database server, accessible via a RESTful JSON API.
  • Ad-hoc and schema-free with a flat address space.
  • Distributed, featuring robust, incremental replication with bi-directional conflict detection and management.
  • Query-able and index-able, featuring a table oriented reporting engine that uses Javascript as a query language.

Tutorials

Test and Share Your Code On-Line

Codepad is a pastebin that runs your code for you. It was written by Steven Hazel. Codepad works like a compiler or interpreter, not like the read-eval-print loop of an interactive interpreter prompt. If you want to print the value of an expression, you need to use your language’s print command. If your language requires a “main” function, your program won’t work in codepad without one.

Steven has added support for many languages, including PHP, Python, Ruby and Perl.

How it works

Code execution is handled by a supervisor based on geordi. The strategy is to run everything under ptrace, with many system calls disallowed or ignored. Compilers and final executables are both executed in a chroot jail, with strict resource limits. The supervisor is written in Haskell.

“Hello World” examples: http://codepad.org/hello-world

Excellent tool!

Web Platforms vs. Traditional Platforms

Enabling developers to create and deliver any kind of business application, entirely on-demand and without software it’s a breakthrough new concept that is making companies radically more successful by letting them translate their ideas into deployed applications in record time.

Time to build and deploy a custom database application:

Web Platform Traditional Platform
Development Time 100 hours 4000 hours
Time to Deploy Instant 4 weeks
No Hardware & Software True False
No Maintenance Required True False
No Extra Development Required True False
- Analytics True False
- Internationalization True False
- Authentication and security model True False
- Mobile access True False
- Compliance audit trail True False

Learn more about PaaS:

Use-Case Analysis: Getting from use cases to code

The first in a two-part series that appeared in The Rational Edge, this article presents a case study that analyses the requirements captured in use cases and transforms them into implementable representations that can be directly coded. An excellent article written by Gary Evans.

Getting from use cases to code: Part 1: Use-Case Analysis
Getting from use cases to code: Part 2: Use Case Design