Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CouchDB: Lessons learned building a rails + iOS app

Steven Ringo
February 14, 2012
140

CouchDB: Lessons learned building a rails + iOS app

Lessons learned using CouchDB to build a rails 3 app as a synchronised back-end for an iOS app running an embedded version of CouchDB.

Steven Ringo

February 14, 2012
Tweet

Transcript

  1. Steven Ringo | [email protected] | @stevenringo
    CouchDB
    Lessons learned building a rails + iOS app

    View Slide

  2. Why CouchDB?

    View Slide

  3. View Slide

  4. View Slide

  5. Online.
    Sometimes.

    View Slide

  6. Push updates.

    View Slide

  7. Multiple backends.

    View Slide

  8. BLOBs.

    View Slide

  9. No custom API.

    View Slide

  10. Syncing is hard.

    View Slide

  11. Universal datastore.

    View Slide

  12. Migrations.

    View Slide

  13. Availability of an mobile implementation.

    View Slide

  14. SQL is not NoSQL

    View Slide

  15. SQL != !SQL

    View Slide

  16. SQL = SQL?
    W
    A
    T
    ?

    View Slide

  17. View Slide

  18. Forget everything you learned about
    SQL.

    View Slide

  19. Everything.

    View Slide

  20. EF Codd

    View Slide

  21. Normalization is not normal.

    View Slide

  22. MapReduce

    View Slide

  23. Futon

    View Slide

  24. MapReduce is scary.
    But not as scary as SQL (was)

    View Slide

  25. ORMs

    View Slide

  26. CouchCocoa for iOS

    View Slide

  27. Everything persists.
    Everything.

    View Slide

  28. couch_potato gem

    View Slide

  29. couchrest gem

    View Slide

  30. Bye-bye ActiveRecord.
    Hello ActiveModel

    View Slide

  31. Do not use couchrest_model

    View Slide

  32. Replication is trivial

    View Slide

  33. imagine git in a database context.

    View Slide

  34. MVCC.
    No locking.
    No mess.

    View Slide

  35. View Slide