Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Mobile Offline First

98 views

Published on

CouchDB and PouchDB

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Mobile Offline First

  1. 1. CouchDB & PouchDB Julio Castro @jec_ar www.xgem.com.ar
  2. 2. What was I looking for? - Mobile - Distribution - Offline - Synchronization - Easy Library - Compatibility - Non structure model
  3. 3. What did I find? • JavaScript libraries • No-SQL • Document database • Multiple database nodes • REST API
  4. 4. CouchDB • Replication is the number one feature. • …replication to solve a number of problems. • redundant data storage • load balancing
  5. 5. Fallacies of Distributed Computing:
  6. 6. CouchDB • Eventual Consistency …Unlike traditional relational databases, where each action performed is necessarily subject to database-wide consistency checks, CouchDB makes it really simple to build applications that sacrifice immediate consistency for the huge performance improvements that come with simple distribution. • Local Consistency ¿? next slide [Wiki] Paxos
  7. 7. CouchDB • powerful B-tree storage engine • uses MapReduce to compute the results of a view • No locks, uses Multi-Version Concurrency Control (MVCC) [Wiki] B-Tree [Wiki] MVCC
  8. 8. CouchDB • Validations • provides a powerful way to perform per-document validation from within the database. Using JavaScript.
  9. 9. CouchDB • Distributed Consistency • Incremental replication • CouchDB’s replication system comes with automatic conflict detection and resolution
  10. 10. CouchDB • API REST • curl http://127.0.0.1:5984/ • {"couchdb":"Welcome","version":"0.10.1"} • curl -X GET http://127.0.0.1:5984/_all_dbs • [] • curl -X PUT http://127.0.0.1:5984/xgem • {"ok":true}
  11. 11. CouchDB • Futon
  12. 12. CouchDB • Design Docs • special type of CouchDB document that contains application code. • Views • Validations • Show
  13. 13. • an in-browser database • also runs in Node.js • a direct interface to CouchDB-compatible servers • PouchDB is not a self- contained database • it is a CouchDB-style abstraction layer
  14. 14. • Plugins • PouchDB Authentication • Pouch Box • Allows decentralized authentication and access control per document, using asymmetric encryption. • Pouch Mirror • Creates a synced in-memory mirror of a remote CouchDB for faster reads. • And more…
  15. 15. Architecture Online
  16. 16. Architecture Offline
  17. 17. Herkimer @xgem • Mobile • Client iOS/Android • Geo-localization: What? When? routes management. • Picture: Capture & Sync • Scan QR/Barcode • Document transformation (excel, pdf) • Communication • Push Notifications (single/broadcast) • Integration Hub • MQTT • NIFI • IoT • Security • SSL,oAuth2 • Social Login • Share on Social networks or email • Fingerprint • Data: • Data model by configuration • Document DB • Sensitive data collections • Client consume configuration from Backend • Auto Sync per collection • Backend “multiple” project • Reporting • RESP API / export data • Reduced data collection for mobile performance. STATUS: Under development. xGem Member access only.
  18. 18. Herkimer @xgem RDBMS & No-SQL No-SQL
  19. 19. Thanks… Julio Castro @jec_ar http://www.xgem.com.ar

×