Top Banner
Dimgba Kalu / @dkdimgba Austine Iyke / @austynsx
18

Data persistence using pouchdb and couchdb

Apr 13, 2017

Download

Software

Dimgba Kalu
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Data persistence using pouchdb and couchdb

Dimgba Kalu / @dkdimgba

Austine Iyke / @austynsx

Page 2: Data persistence using pouchdb and couchdb

Dimgba – is the Co-Founder at ProJaro / @projarong. He is

developer and loves everything PHP and JavaScript

Austin – is a developer at ProJaro / @projarong. He enjoys

the flexibility of JS and programs with PHP and Python

Page 3: Data persistence using pouchdb and couchdb

Definitions

Common Practices

Offline Data persistent methods

Available offline data persistence tools

Page 4: Data persistence using pouchdb and couchdb

Persistent Data denotes information that is infrequently accessed and not likely to be modified. The opposite of this is dynamic data (also known as transactional data) where information is asynchronously changed as further updates to the information become available ◦ https://en.wikipedia.org/wiki/Persistent_data

Page 5: Data persistence using pouchdb and couchdb

CRUD - Create, Read, Update and Delete

Each letter in the acronym can map to a standard SQL statement and HTTP method:

Typically we employ CRUD via RESTful APIs

Operation` SQL HTTP

Create INSERT PUT / POST

Read (Retrieve) SELECT GET

Update (Modify) UPDATE PUT / PATCH

Delete (Destroy) DELETE DELETE

Page 6: Data persistence using pouchdb and couchdb

Resource POST / create GET / read PUT / update DELETE / delete

/accounts Create a new account

List accounts Bulk update accounts

Delete all accounts

/accounts/123 Error Show account 123

If exists update account 123

If not error

Delete account 123

/customers Create a new customer

List customers Bulk update customers

Delete all customers

/customers/456 Error Show customer 456

If exists update customer 456

If not error

Delete customer 456

Page 7: Data persistence using pouchdb and couchdb
Page 8: Data persistence using pouchdb and couchdb

Solution: richer clients (using AngularJS , ReactJs, and others)

In browser databases available:◦ derby.js, Lawnchair, Sench touch,

Page 9: Data persistence using pouchdb and couchdb

The Ultimate Solution will be

Real-time data synchronization

Page 10: Data persistence using pouchdb and couchdb

Failures can happen on: client push, or client pull/ server push

Communicate or hide connectivity state◦ Chat app

Enable client-side creation and editing features◦ Todo app

Disable, modify, or hide features that won’t work◦ Facebook status, Twitter Tweets

Notify user about possibly conflicting data (Not recommended)

Page 11: Data persistence using pouchdb and couchdb

“You are offline”◦ “Unable to connect to the Internet”

◦ We need to stop treating offline as an error condition

Try not to block features completely◦ If you can’t update, show old data (with message)

◦ Let user create data locally to be sent later

Dealing with new incoming data. Options:◦ Show it as the most recent

◦ Show it in chronological order

Page 12: Data persistence using pouchdb and couchdb

Proprietary solution?

◦ Firebase

Firebase transparently reconnects to server

Open source local storage databases that sync

◦ Hoodie (Another JS db that syncs. In preview mode)

◦ remotestorage.io (IETF Proposed Standard)

◦ PouchDB (JavaScript database that syncs!)

Page 13: Data persistence using pouchdb and couchdb

Pros◦ AngularJS library (AngularFire)

◦ 3-way binding with $bind

◦ Free Developer (Hacker) plan

◦ Paid solution with premium support

◦ Hosted solution

◦ Highly scalable

◦ Can deploy static hosted apps

Cons◦ Proprietary solution

◦ Hosted solution (can’t run local or on own servers)

Page 14: Data persistence using pouchdb and couchdb
Page 15: Data persistence using pouchdb and couchdb

Pros:◦ Open Source

◦ Lightweight Cross Browser JavaScript implementation

◦ Syncs with open source CouchDB protocol servers

PouchDB-Server - a HTTP on top of PouchDB

Cloudant - A cluster aware fork of CouchDB

Couchbase Sync Gateway

Cons:◦ I’m biased

Page 16: Data persistence using pouchdb and couchdb
Page 17: Data persistence using pouchdb and couchdb

Sample Codehttps://github.com/austyns/todo-pouch-couch

Page 18: Data persistence using pouchdb and couchdb

Thank Youhttp://projaro.com