couchdb awesomeness - history, the basics and how we use it
DESCRIPTION
CouchDB is awesome. A quick history on the NoSQL database, it's Erlang origin, what it does, and quick examples on using curl to interact with Curl. Includes how we use CouchDB for Atmail R&D projects and why we like it!TRANSCRIPT
![Page 1: Couchdb awesomeness - History, the basics and how we use it](https://reader033.vdocuments.site/reader033/viewer/2022051400/5556e269d8b42ac60c8b4995/html5/thumbnails/1.jpg)
CouchDB awesomenessOur adventures in Atmail R&D with CouchDB
Ben Duncan - 2nd April
Thursday, 3 April 14
![Page 2: Couchdb awesomeness - History, the basics and how we use it](https://reader033.vdocuments.site/reader033/viewer/2022051400/5556e269d8b42ac60c8b4995/html5/thumbnails/2.jpg)
CouchDB History
Founded by Damien Katz (Former IBM/Lotus) in 2005
Apache project in Feb 2008
Various commercial forks ( CouchBase, Cloudant )
Thursday, 3 April 14
![Page 3: Couchdb awesomeness - History, the basics and how we use it](https://reader033.vdocuments.site/reader033/viewer/2022051400/5556e269d8b42ac60c8b4995/html5/thumbnails/3.jpg)
Whaaaat, written in Erlang?
CouchDB is written in Erlang, a language pioneered by Ericsson
Erlang scales really well - Whatsapp backend written in Erlang. Serious tuning.
Erlang has a love/hate type community
Thursday, 3 April 14
![Page 4: Couchdb awesomeness - History, the basics and how we use it](https://reader033.vdocuments.site/reader033/viewer/2022051400/5556e269d8b42ac60c8b4995/html5/thumbnails/4.jpg)
So, like, what does it do?
Classic NoSQL database
Brilliant replication out of the box
All data stored as JSON - There is no schema as such
All communication via your app to Couch is via JSON/HTTP(S)
Can write map-reduce functions to sort/query/filter data
It’s faster then a traditional SQL DB (well, depends...)
Oh, and why we like developing with it.
Thursday, 3 April 14
![Page 5: Couchdb awesomeness - History, the basics and how we use it](https://reader033.vdocuments.site/reader033/viewer/2022051400/5556e269d8b42ac60c8b4995/html5/thumbnails/5.jpg)
CouchDB FutonInbuilt WebUI for managing CouchDB + your data
Thursday, 3 April 14
![Page 6: Couchdb awesomeness - History, the basics and how we use it](https://reader033.vdocuments.site/reader033/viewer/2022051400/5556e269d8b42ac60c8b4995/html5/thumbnails/6.jpg)
Simple query crash course.
Create a DB:curl -X PUT http://couchhost:5984/mydb
Create a document:curl -X POST http://couchhost:5984/mydb -H 'Content-Type: application/json' -d '{"FirstName":"Isabella","FamilyName":"Huegdon","Age":2,"Likes":["noise","animals","chocolate","kicking Milly","throwing tantrums"]}'
Get a document:curl -X GET http://couchhost:5984/mydb/docID
Examples to play with CouchDB
Thursday, 3 April 14
![Page 7: Couchdb awesomeness - History, the basics and how we use it](https://reader033.vdocuments.site/reader033/viewer/2022051400/5556e269d8b42ac60c8b4995/html5/thumbnails/7.jpg)
CouchDB + NodeJSBringing the power of Node + Couch together
Using NodeJS with CouchDB makes developing modern apps easierUsing web-sockets from the browser to NodeJS, and pushing live data changes from Couch, makes developing fun!npm install nano - Best module for NodeJS
Thursday, 3 April 14
![Page 8: Couchdb awesomeness - History, the basics and how we use it](https://reader033.vdocuments.site/reader033/viewer/2022051400/5556e269d8b42ac60c8b4995/html5/thumbnails/8.jpg)
R&D - http://glidr.io/Pushing messaging data between multiple devices
Thursday, 3 April 14
![Page 9: Couchdb awesomeness - History, the basics and how we use it](https://reader033.vdocuments.site/reader033/viewer/2022051400/5556e269d8b42ac60c8b4995/html5/thumbnails/9.jpg)
R&D - Email MigrationBackground daemon migrating messages, pushing status to CouchDB and live push to browser
Thursday, 3 April 14
![Page 10: Couchdb awesomeness - History, the basics and how we use it](https://reader033.vdocuments.site/reader033/viewer/2022051400/5556e269d8b42ac60c8b4995/html5/thumbnails/10.jpg)
Learn more, plz!- CouchDB Home:http://couchdb.apache.org/
- Scaling Erlang for WhatsApp:http://www.erlang-factory.com/conference/SFBay2012/speakers/RickReed
- Intro to CouchDB views/MapReducehttps://wiki.apache.org/couchdb/Introduction_to_CouchDB_views
Thursday, 3 April 14