Real-time, asynchronous collaboration on JSON
JSON already became the way to exchange data in web, then apps got richer, amount of data grew, connections got faster. Now, transferring such (even lightweight) data, and changing it in asynchronous environment starts to be a problem.
In many applications JSON view-model is a spine of entire apps, shared over the network between browser and server, but there are vital obstacles in any peer-to-peer communication that should get addressed.
How to reduce the traffic, and improve readability of exchanged messages? How to untangle asynchronous networking of changes? How to solve concurrent, asynchronous changes conflict? Is there a spec or standard for this? Is there any fast and clean implementation? Does anybody use that? Does it really need to be that complex?
I would try to answer to all those questions. Now, imagine what could you do with real-time JSON sync, for real.Rate the talk
My history with web tech started when I was 10, when I wrote my first line of HTML. Therefore I have witnessed almost entire evolution of the Web, to finally get back to the HTML and fell in love with JS.
During my journey, I had experienced big corporate software projects, as well as small open-source ones - I am an author of many Juicy Custom Elements and I work on PuppetJs - project to make async JSON communication way much easier. Currently, I work with Starcounter - DB company, where we are trying to push Web Platform features forward, and squeeze as much as we can from emerging specs (like Web Components, JSON Patch, and many others) to make building operation-heavy apps easier than ever before.
I get into Web Components, as I like the idea to improve the platform instead of making yet another magic framework full of neat hacks. In general, I like simple and clean solutions for complicated problems. I try to apply this approach to asynchronous collaboration and eventual consistency problems in JS. That is why I spend lot of my free time to find such clean and simple solution for this problem, and try to establish a new standard.