SlideShare a Scribd company logo
Apache
CouchDB
Hello
Chris Anderson
jchris@apache.org / @jchris
Apache CouchDB Committer
REST and JavaScript enthusiast
Director, couch.io
I’m here to answer the question: What is CouchDB? (from an app devs perspective - and some
implementor)
How many of you have:
built an application around a key value store?
written map reduce functions?
used Erlang in an application?
Relax
-   easy to reason about
-   reliable - your data is safe with us.
-   honda accord, not a ferrari
-   as a debating point among developers
Bandwidth Explosion
CouchDB - Local Web Platform
CouchDB - Local Web Platform
CouchDB - Local Web Platform
CouchDB - Local Web Platform
CouchDB - Local Web Platform
CouchDB - Local Web Platform
“no bars”
http://www.flickr.com/photos/hercwad/2290378571/
Latency Sucks




speed of light
drawback to cloud computing
What is
         CouchDB?

- k/v store with map reduce
- http database written in erlang
Local Web
         Local Web
          Platform
          Platform
- on your device, local network, in a browser plugin
- replication: it just works. makes data portable.
- real-time remote backups, ad hoc topologies.
“Ground Computing”
                                                                        @jhuggins




                                                   http://www.flickr.com/photos/mcpig/872293700/
-   local to the user, more like desktop web than like Gears
-   local http server
-   browser apps
-   same application on the client and server or the cloud
Offline by Default




                           http://www.flickr.com/photos/shane-h/280084650
- low latency & reliable
- 2 tier applications
http://apod.nasa.gov/apod/ap050930.html




                                                  “Of the Web”



                                         http://jacobian.org/writing/of-the-web/



Let me tell you something: Django may be built for the Web, but CouchDB is built of the Web. I've never seen software that so completely embraces the philosophies behind HTTP. ... this is
what the software of the future looks like. Jacob Kaplan-Moss -- October, 2007

perfect spot - discovered not invented
- lower barrier for contribution
- validate installations
- foster interop (CouchDB as a protocol)
Learning Curve



- doc modeling (mvcc / concurrency)
- etags / Functional style of REST
- eventual consistency
CouchDB - Local Web Platform
CouchDB - Local Web Platform
http://www.longnow.org/projects/clock/
http://www.longnow.org/projects/clock/orrery/
Robust



-   single file
-   append only
-   no fixup phase
-   minimizes seeks
Robust



- when britain is burning
- Enda Farrell - bbc
{
        "_id": "BC4ea69ce1a73aa7d21d23b608d221d
        "_rev": "1-967a00dff5e02add41819138abb32
        JSON Documents
        "type": "person",
        "name": "Darth Vader",
        "age": 63,
        "headware":
         ["Helmet", "Sombrero"],
        "dark_side": true
    }
-   denormalize
-   natural data behavior
-   evolve formats with your application
-   easier to bootstrap in your mind
{
    "_id": "BC4ea69ce1a73aa7d21d23b608d221d
    "_rev": "1-967a00dff5e02add41819138abb32
    JSON Documents
    "type": "person",
    "name": "Darth Vader",
    "age": 63,
    "headware":
     ["Helmet", "Sombrero"],
    "dark_side": true
}
- 2 patterns
 - document update
 - event log
{
     "_id": "BC4ea69ce1a73aa7d21d23b608d221d
     "_rev": "2-41819138abb32967a00dff5e02ad
     JSON Documents
     "type": "person",
     "name": "Darth Vader",
     "age": 63,
     "headware":
      ["Helmet", "Sombrero"],
     "dark_side": “More CoWbell!”
 }
- MVCC
- model for concurrency
CouchDB - Local Web Platform

 Map Reduce
http://horicky.blogspot.com/2008/10/couchdb-implementation.html
ful 


  http://www.flickr.com/photos/calliope/3573471166
db
                   
       http://code.google.com/p/couchdb-lounge/



http://www.flickr.com/photos/aussiegall/658457636
CouchDB - Local Web Platform
curl -X POST
 http://127.0.0.1:5984/_replicate



-d
'{
"source":
 "http://couch.example.com:5984/remote-db",
"target":
 "local-db"
}'
curl -X POST
 http://127.0.0.1:5984/_replicate



-d
'{
"source":
 "http://couch.example.com:5984/remote-db",
"target":
 "local-db"
}'
CouchDB - Local Web Platform
CouchDB - Local Web Platform
CouchDB - Local Web Platform
CouchDB - Local Web Platform
periodic, notifier system
CouchDB - Local Web Platform
“In the fullness of time there is only one CouchDB”
standalone CouchDB applications
Scaling Down
Browser Couch
                       JavaScript port

                Uses HTML5 storage

            Replicates with CouchDB

http://hg.toolness.com/browser-couch/
Gives Control to Users




                    CC-BY-SA http://www.flickr.com/photos/kelleys/492253912/

 - want to get kids in trouble for programming too much
claris
CouchDB - Local Web Platform
CouchDB - Local Web Platform
CouchDB - Local Web Platform
Stuart Langridge - Canonical




!   !
-   good because it's the status quo
-   easy to address with URLs
-   bad because users are depending on a remote resource for low latency responses
-   centralized, so traffic spikes impact all users, who might start refreshing
- local requests are fast
- easier to tune for throughput
- plays to the strengths of mobile connections
- users can run different applications on the same dataset
deployment
 Independent
 Personal
   - dark matter of the information universe
messaging
  peer discovery
identity
  Can we trust intermediate servers?
“Obvious.”

web architecture
Local Web
 Platform
anks!
Resources
                  @CouchDB

           http://couchdb.apache.org/

  Dress like a Couch: http://shop.couchdb.com

           http://planet.couchdb.org/

https://peepcode.com/products/couchdb-with-rails
@couchdbinaction




http://books.couchdb.org/relax
Robust
JSON
HTTP
Local
Conflict resolution by
     example


 A               B




                     couch.io
Conflict resolution by
     example


 A               B


 ❦
                     couch.io
Conflict resolution by
     example


 A               B


 ❦
                     couch.io
Conflict resolution by
     example


 A               B


 ❦              ❦
                     couch.io
Conflict resolution by
     example


 A               B


 ❦              ❦
                     couch.io
Conflict resolution by
     example


 A               B


 ❦              ✿
                ❦
                     couch.io
Conflict resolution by
     example


 A               B


 ❦              ✿
                ❦
                     couch.io
Conflict resolution by
     example


 A               B


                ✿
                     couch.io
Conflict resolution by
     example


 A               B


                     ✿
                         couch.io
Conflict resolution by
     example


 A               B


                     ✿
                         couch.io
Conflict resolution by
     example


 A               B


                ✿
                     couch.io
CC-by-nd http://www.flic.kr/photos/eifelyeti110/273939759/

More Related Content

PDF
Performance Improvements in Browsers
PDF
The DOM is a Mess @ Yahoo
PDF
Building a JavaScript Library
PDF
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
PPT
High Performance Ajax Applications
PDF
Performance, Games, and Distributed Testing in JavaScript
PDF
Front End Performance
PPTX
Front end performance optimization
Performance Improvements in Browsers
The DOM is a Mess @ Yahoo
Building a JavaScript Library
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
High Performance Ajax Applications
Performance, Games, and Distributed Testing in JavaScript
Front End Performance
Front end performance optimization

What's hot (20)

PDF
Front end performance tip
PDF
How to make Ajax work for you
PDF
Profiling JavaScript Performance
PDF
HTML5 for the Silverlight Guy
KEY
Socket applications
PDF
Building Realtime Apps with Ember.js and WebSockets
PDF
HyperLight Websites
KEY
#NewMeetup Performance
PDF
High Performance JavaScript - jQuery Conference SF Bay Area 2010
PDF
WebSockets with Spring 4
PDF
S314011 - Developing Composite Applications for the Cloud with Apache Tuscany
PDF
Ajax Security
PPTX
JS Lab`16. Владимир Воевидка: "Как работает браузер"
PDF
연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015
PDF
Os Bunce
PDF
HTML5: friend or foe (to Flash)?
PDF
High Performance Ajax Applications
KEY
modern module development - Ken Barber 2012 Edinburgh Puppet Camp
PDF
Building a desktop app with HTTP::Engine, SQLite and jQuery
PPT
HTML5 WebSocket: The New Network Stack for the Web
Front end performance tip
How to make Ajax work for you
Profiling JavaScript Performance
HTML5 for the Silverlight Guy
Socket applications
Building Realtime Apps with Ember.js and WebSockets
HyperLight Websites
#NewMeetup Performance
High Performance JavaScript - jQuery Conference SF Bay Area 2010
WebSockets with Spring 4
S314011 - Developing Composite Applications for the Cloud with Apache Tuscany
Ajax Security
JS Lab`16. Владимир Воевидка: "Как работает браузер"
연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015
Os Bunce
HTML5: friend or foe (to Flash)?
High Performance Ajax Applications
modern module development - Ken Barber 2012 Edinburgh Puppet Camp
Building a desktop app with HTTP::Engine, SQLite and jQuery
HTML5 WebSocket: The New Network Stack for the Web
Ad

Viewers also liked (20)

PDF
Google Talk: DOs and DON'Ts of Mobile Strategy
PPTX
SPS Utah - Everything your need to know about the Microsoft Graph as a ShareP...
PPTX
10 tips to get started with html5 games
PDF
What an "RP" Wants
PPT
ThinkingRock GTD tool Screenshots tour
PDF
Find your own iOS kernel bug
PDF
Speed Up Your JavaScript
PPTX
Azure Web Scalability
PDF
"What Users Want from Mobile - A study of consumers’ mobile web and applicati...
PDF
HTML5 or Android for Mobile Development?
PDF
Enforcing Your Code of Conduct: effective incident response
PDF
Herausforderung Digitale Markenkommunikation
PDF
Diplomarbeit . Markenkommunikation & Social Media
PPTX
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
PDF
The Rise of Multi-Platform Video: Why Brands Need a Multi-Platform Video Stra...
PDF
Android UI Design Tips
PDF
Implications Of OpenID (Google Tech Talk)
PDF
Grenzen der Markenkommunikation - Frosch bleibt Frosch
PDF
Content Mapping
PDF
Airbnb tech talk: Levi Weintraub on webkit
Google Talk: DOs and DON'Ts of Mobile Strategy
SPS Utah - Everything your need to know about the Microsoft Graph as a ShareP...
10 tips to get started with html5 games
What an "RP" Wants
ThinkingRock GTD tool Screenshots tour
Find your own iOS kernel bug
Speed Up Your JavaScript
Azure Web Scalability
"What Users Want from Mobile - A study of consumers’ mobile web and applicati...
HTML5 or Android for Mobile Development?
Enforcing Your Code of Conduct: effective incident response
Herausforderung Digitale Markenkommunikation
Diplomarbeit . Markenkommunikation & Social Media
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
The Rise of Multi-Platform Video: Why Brands Need a Multi-Platform Video Stra...
Android UI Design Tips
Implications Of OpenID (Google Tech Talk)
Grenzen der Markenkommunikation - Frosch bleibt Frosch
Content Mapping
Airbnb tech talk: Levi Weintraub on webkit
Ad

Similar to CouchDB - Local Web Platform (20)

PDF
Couchdb Nosql
PDF
CouchDB Open Source Bridge
PDF
Responsive and Fast
PDF
Tearing the Sofa Apart: CouchDB and CouchApps from a Beginner's Perspective
PDF
Container and microservices: a love story
PDF
Thomas Rossetto - Container and microservices: a love story - Codemotion Mila...
PDF
Hosting Your Own OTA Update Service
PDF
Play framework
PDF
Continuous Integration and Deployment Best Practices on AWS
PDF
MTC Spring 2013 - crossplatform woes - robert virkus - 2013-03-13
KEY
Battle of NoSQL stars: Amazon's SDB vs MongoDB vs CouchDB vs RavenDB
PDF
FOXX - a Javascript application framework on top of ArangoDB
PDF
Docker in Production - IPC 2016
PDF
LA RubyConf 2009 Waves And Resource-Oriented Architecture
PDF
Cloud Best Practices
PDF
A walk down NOSQL Lane in the cloud
KEY
Practical Use of MongoDB for Node.js
PDF
AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...
PDF
Обход проверки безопасности в магазинах мобильных приложений при помощи платф...
PDF
OpenFaaS KubeCon Zero to Serverless in 60 seconds anywhere
Couchdb Nosql
CouchDB Open Source Bridge
Responsive and Fast
Tearing the Sofa Apart: CouchDB and CouchApps from a Beginner's Perspective
Container and microservices: a love story
Thomas Rossetto - Container and microservices: a love story - Codemotion Mila...
Hosting Your Own OTA Update Service
Play framework
Continuous Integration and Deployment Best Practices on AWS
MTC Spring 2013 - crossplatform woes - robert virkus - 2013-03-13
Battle of NoSQL stars: Amazon's SDB vs MongoDB vs CouchDB vs RavenDB
FOXX - a Javascript application framework on top of ArangoDB
Docker in Production - IPC 2016
LA RubyConf 2009 Waves And Resource-Oriented Architecture
Cloud Best Practices
A walk down NOSQL Lane in the cloud
Practical Use of MongoDB for Node.js
AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...
Обход проверки безопасности в магазинах мобильных приложений при помощи платф...
OpenFaaS KubeCon Zero to Serverless in 60 seconds anywhere

Recently uploaded (20)

PDF
Encapsulation theory and applications.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Machine Learning_overview_presentation.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
A Presentation on Artificial Intelligence
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Approach and Philosophy of On baking technology
PPTX
Spectroscopy.pptx food analysis technology
Encapsulation theory and applications.pdf
cuic standard and advanced reporting.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
MIND Revenue Release Quarter 2 2025 Press Release
Chapter 3 Spatial Domain Image Processing.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
The AUB Centre for AI in Media Proposal.docx
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Dropbox Q2 2025 Financial Results & Investor Presentation
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
“AI and Expert System Decision Support & Business Intelligence Systems”
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Machine Learning_overview_presentation.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
A Presentation on Artificial Intelligence
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Approach and Philosophy of On baking technology
Spectroscopy.pptx food analysis technology

CouchDB - Local Web Platform