Chris Anderson is a CouchDB committer who helped start the project in 2005. CouchDB uses JSON documents with a flexible schema and provides an HTTP API for CRUD operations. It features an ACID storage engine, replication for high availability, and map-reduce views. Applications are built with CouchApps, which render JSON data as HTML and allow embedding logic via JavaScript. The future of CouchDB may include key-centric identity and peer-to-peer topologies to improve trust and performance.
2. Who Am I?
• Chris Anderson <jchris@apache.org>
• CouchDB committer
• Blog: http://jchrisa.net
3. Couch History
• Damien Katz <http://damienkatz.net/>
• Worked on Lotus Notes & MySQL
• Started CouchDB in 2005
• 2006: Moved to Erlang, JSON and JavaScript
• Approaching 0.9 Release
21. Let’s Replicate
Everything!
• Take full advantage of CouchDB
• View-source Open Source
• The Future is Distributed
22. But that’s not RESTful!
Representational State Transfer...
it’s more than just verbs,
it’s the hyperlinks.
Webpage
Webpage Webpage
Webpage
∴
We need HTML.
23. Render JSON Docs as HTML
shows/post.js /drl/_show/sofa/post/Hello-World-For-Real-This-Time
24. Render Views as HTML
lists/index.js /drl/_list/sofa/index/recent-posts?descending=true&limit=8
25. Hands On with CouchApp
• CouchApp is just some filesystem helpers
• Embodies “best practices”
• CouchApp is not opinionated, CouchDB is.
• Don’t shoot the messenger.
26. Install CouchApp
sudo easy_install couchapp
or
git clone git://github.com/jchris/couchapp.git
29. Get the Example App
(ajax version)
couchapp clone
http://jchrisa.net/sofa-ajax/_design/sofa
cd sofa
couchapp push
http://user:pass@localhost:5984/sofa-ajax
36. The Future
• Key-Centric Identity?
• P2P Topologies don’t leave room to trust
the server.
• Multi-Node clusters
• High performance, large databases
37. Resources
• #couchdb and #couchapp on
irc.freenode.net
• http://couchdb.apache.org for mailing lists
• http://planet.couchdb.org/
• http://books.couchdb.org/relax/
• Twitter search for “couchdb”