couchdb awesomeness - history, the basics and how we use it

10
CouchDB awesomeness Our adventures in Atmail R&D with CouchDB Ben Duncan - 2nd April Thursday, 3 April 14

Upload: ben-duncan

Post on 16-May-2015

998 views

Category:

Technology


0 download

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

CouchDB awesomenessOur adventures in Atmail R&D with CouchDB

Ben Duncan - 2nd April

Thursday, 3 April 14

Page 3: Couchdb awesomeness - History, the basics and how we use it

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

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

CouchDB FutonInbuilt WebUI for managing CouchDB + your data

Thursday, 3 April 14

Page 6: Couchdb awesomeness - History, the basics and how we use it

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

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

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

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

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