Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Meteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern Apps


Published on

These are the slides for the talk Emily Stark and I presented at MIT on September 9, 2014.

We talked about the components that make up Meteor and how they fit together, finishing off with a more in-depth discussion of DDP, Meteor's Distributed Data Protocol.

Published in: Technology
  • Login to see the comments

Meteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern Apps

  1. 1. Designing a New Platform for Modern Apps Emily Stark, MIT SM ‘13! Sashko Stubailo, MIT ‘14! Core Developers at Meteor
  2. 2. What is Meteor?! • An open source JavaScript client and server application framework • Build fast, modern, high quality apps in a fraction of the time
  3. 3. Leaderboard QUICK APP DEMO $ meteor create -­‐-­‐example leaderboard
  4. 4. Modern Web Apps! What do they have in common that makes them so nice to use?
  5. 5. Features of Modern Web Apps! 1. Instant Response You don’t have to wait for the round-trip to the server. 2. Reactive UI The UI is always up to date with the data. 3. Fast Load Time The whole UI is sent to the client once, so subsequent loads are fast. 4. Multiple Platforms You can access the same data through several websites and mobile apps.
  6. 6. What makes this possible?! Implementation Requirements! Features! 1. Instant Response 2. Reactive UI 3. Fast Load Time 4. Multiple Platforms • Latency compensation • Rendering views on the client • Subscribing to data from the server • Client-side data caching
  7. 7. How does Meteor do this stuff?! Livequery (Real-time MongoDB) Minimongo (Client-Side Cache) Tracker (Dependency Tracking) Blaze (Reactive HTML Rendering) DDP (Distributed Data Protocol) Server Client
  8. 8. DDP (Distributed Data Protocol)! • A simple, human-readable protocol for remote procedure calls and data synchronization Let’s go back to our demo to see it in action!
  9. 9. DDP Messages! See the detailed spec at! Publish and Subscribe Client è Server! Server è Client! sub unsub added changed removed ready Remote Procedure Calls – “Methods” Client è Server! Server è Client! method result updated
  10. 10. DDP (Distributed Data Protocol)! • Pub/sub and RPC in one protocol • Enable latency compensation • Helps you avoid data race conditions • Ensures consistency between client and server • Better than REST for modern web apps - enables all of the cool features we saw earlier • Could replace non-standard live data APIs such as Twitter and Dropbox with one protocol
  11. 11. Meteor DDP API! // on the client Meteor.subscribe(“players”, onReady); Players.find() // get the data Publish and Subscribe Remote Procedure Calls – “Methods” // on the server Meteor.publish(“players”, function () { return Players.find(); }); // on the server Meteor.methods({ givePoints: function (playerId) { Players.update(/* query */); } }); // on the client“givePoints”, playerId, onResult);
  12. 12. What could you make with DDP?! • Build your own DDP client or server to provide or consume data • Proxy a streaming API to DDP so other people can use it • Build a system that replicates data across a mesh network Meteor is our implementation; also check out the community implementations for Ruby, Python, Java, and more.
  13. 13. Meteor is hiring!! • Full-time, in San Francisco and remotely • Interns for Winter, Spring, and Summer Check out! Contact us! ! Emily Stark @estark37 Sashko Stubailo @stubailo