Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome or Safari browser. Firefox 10 (to be released soon) will also handle it.

minutes.io

A Production CouchApp
and a Shitload of Replications

Gregor Martynus
@gr2m @minutes_io

Gregor Martynus

Developer Designer Business Buzzer somethin' in between

♥ building products

♥ solving real life issues

♥ tools that help me do that

minutes.io?
simplest meeting tool since pen & paper.

  1. immediate saving, automated synchronization
  2. works on & offline
  3. It just works™

engine room

started with

migrated to

and ♥CoffeeScript♥

Why?

Introduction of Accounts
Login with email & password

Accessing data across devices
=> Synchronization.

The it just works™- kind of
live Synchronization

Rails/Postgres
can do it.

CouchDB
is made for it.

right?

(teething) troubles

  1. Replications
  2. Replications
  3. Replications
  4. Replications
  1. OS open files
  2. open databases
  3. ETS tables
  4. Erlang process limit

But

no Couch/Replication problems
since 1 month:

minutes.io ♥ Iris Couch

minutes.io is a couchApp with a nodeJS proxy

FRONTEND: HTML5

  • local data, no internet connection needed.
  • Background Synchronization (decoupled, _changes & _bulk_docs)

PROXY: node.js

  • User sessions
  • Caching static assets
  • creating databases & replications

BACKEND: couchDB

  • database per user
  • continuous replications userDB => masterDB
  • database per shared meeting
  • continuous replications userDB <=> meetingDB <=> userDB
  • business logic / validations
  • static assets

NUMBERS

  • 1898 user databases
  • 1470 meeting databases
  • 5102 replications

Questions?

Use a spacebar or arrow keys to navigate