“hello” with arguments [“world”] • Server receives and unpacks message • Server calls procedure “hello” with arguments [“world”] • Server sends response with procedure return value • Client handles response
all clients • Changes to the shared object happen in “transactions” • Changes to the shared object are synchronized between all clients • Conflict resolution guarantees atomic transactions
object • Client B connects and receives object • Client B changes key “hello” to “world” • Client A changes key “hello” to “code camp” • Transaction from Client A is rejected due to conflict – synchronization is forced • Client A retries it’s transaction
which then loads all static resources • If Client A needs something from the server it is either work or message passing which can be done over WebSockets • After the initial grab of static files everything is done via WebSockets