[diff algorithm]
server ↔ Socket.io → *changeset* → Client controller → *new contents* → Editor
\ / \ /
`← *changeset* ←´ `← *onchange:contents* ←´
or just
Server | Client(s)
|
server ↔ shareJS ↔ Editor
|
(see http://sharejs.org/)
http://johnmacfarlane.net/pandoc/