About a week ago I presented Swarm.js at the MoscowJS meetup. The talk generated substantial interest. Well, I was asked questions till the security asked us all to leave the building :) Slides can be seen on Slideshare:
The slides are in Russian, kind of, but two key slides are perfectly readable in any language. First, that is the deployments scenario for Swarm.js:
That is, basically, Redis meets Pusher: server-side component both caches objects and relays changes to client-side replicas. In the most straightforward scenario, the server runs node.js thus fully duplicating client-side logic.
That brings several advantages. First and foremost, the logic is implemented just once. Second, the server may always render static HTML for the client thus a new client is sent static gzipped HTML (fast), then downloads JSON and makes the page “live” (slow). That capability was nicknamed “holy grail” by some. Third, it streamlines development a lot that code paths are unified for local and remote operations, also client-to-server and server-to-client event propagation.
Another slide nicely depicts our dream: developing real-time offline-ready apps with the ease of classic local MVC apps.
Replicated model is the key!