SlideShare a Scribd company logo
Designing a New 
Platform for Modern Apps 
Emily Stark, MIT SM ‘13! 
Sashko Stubailo, MIT ‘14! 
Core Developers at Meteor
What is Meteor?! 
http://github.com/meteor/meteor 
• An open source JavaScript client and server 
application framework 
• Build fast, modern, high quality apps in a fraction of 
the time 
http://meteor.com
Leaderboard 
http://meteor.com 
QUICK APP DEMO 
$ 
meteor 
create 
-­‐-­‐example 
leaderboard
Modern Web Apps! 
What do they have in common that makes 
them so nice to use? 
http://meteor.com
Features of Modern Web Apps! 
1. Instant Response 
http://meteor.com 
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.
What makes this possible?! 
Implementation Requirements! 
http://meteor.com 
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
How does Meteor do this stuff?! 
Livequery (Real-time MongoDB) 
Minimongo (Client-Side Cache) 
Tracker (Dependency Tracking) 
Blaze (Reactive HTML Rendering) 
http://meteor.com 
DDP (Distributed Data Protocol) 
Server 
Client
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! 
http://meteor.com
DDP Messages! 
http://meteor.com 
See the detailed spec at ddp.meteor.com! 
Publish and Subscribe 
Client è Server! Server è Client! 
sub 
unsub 
added 
changed 
removed 
ready 
Remote Procedure Calls – “Methods” 
Client è Server! Server è Client! 
method 
result 
updated
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 
http://meteor.com
Meteor DDP API! 
// 
on 
the 
client 
Meteor.subscribe(“players”, 
onReady); 
Players.find() 
// 
get 
the 
data 
http://meteor.com 
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 
Meteor.call(“givePoints”, 
playerId, 
onResult);
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. 
http://meteor.com
Meteor is hiring!! 
• Full-time, in San Francisco and remotely 
• Interns for Winter, Spring, and Summer 
http://meteor.com 
Check out meteor.com/jobs! 
Contact us! 
! 
Emily Stark 
@estark37 
emily@meteor.com 
Sashko Stubailo 
@stubailo 
sashko@meteor.com

More Related Content

PDF
GraphQL across the stack: How everything fits together
PDF
Adding GraphQL to your existing architecture
PDF
GraphQL: The Missing Link Between Frontend and Backend Devs
PDF
Why UI Developers Love GraphQL - Sashko Stubailo, Apollo/Meteor
PPTX
Taking Control of your Data with GraphQL
PDF
Serverless GraphQL for Product Developers
PDF
React and GraphQL at Stripe
PDF
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
GraphQL across the stack: How everything fits together
Adding GraphQL to your existing architecture
GraphQL: The Missing Link Between Frontend and Backend Devs
Why UI Developers Love GraphQL - Sashko Stubailo, Apollo/Meteor
Taking Control of your Data with GraphQL
Serverless GraphQL for Product Developers
React and GraphQL at Stripe
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...

What's hot (20)

PDF
Performance optimisation with GraphQL
PDF
James Baxley - Statically typing your GraphQL app
PPTX
Making Angular2 lean and Fast
PPTX
apidays LIVE Australia 2020 - Productising your Microservices as API Products...
PPTX
GraphQL.net
PDF
Introduction to GraphQL at API days
PPTX
Create GraphQL server with apolloJS
PDF
Scaling Your Team With GraphQL: Why Relationships Matter
PDF
Build Android App using GCE & GAE
PDF
Camunda GraphQL Extension (09/2017 Berlin)
PDF
System design and architecture GgraphQL Public
PPTX
Angular Ivy- An Overview
PDF
The Graph-Native Advantage
PDF
apidays LIVE New York 2021 - Introduction to HATEOAS with Ketting by Evert Po...
PPTX
apidays LIVE India - REST the Events - REST APIs for Event-Driven Architectur...
PPTX
GraphQL-ify your APIs - Devoxx UK 2021
PDF
What's Coming in Apache Airflow 2.0 - PyDataWarsaw 2019
PDF
GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4j
PDF
Flink Forward San Francisco 2019: Managing Flink on Kubernetes - FlinkK8sOper...
PPT
Net35 Overview
Performance optimisation with GraphQL
James Baxley - Statically typing your GraphQL app
Making Angular2 lean and Fast
apidays LIVE Australia 2020 - Productising your Microservices as API Products...
GraphQL.net
Introduction to GraphQL at API days
Create GraphQL server with apolloJS
Scaling Your Team With GraphQL: Why Relationships Matter
Build Android App using GCE & GAE
Camunda GraphQL Extension (09/2017 Berlin)
System design and architecture GgraphQL Public
Angular Ivy- An Overview
The Graph-Native Advantage
apidays LIVE New York 2021 - Introduction to HATEOAS with Ketting by Evert Po...
apidays LIVE India - REST the Events - REST APIs for Event-Driven Architectur...
GraphQL-ify your APIs - Devoxx UK 2021
What's Coming in Apache Airflow 2.0 - PyDataWarsaw 2019
GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4j
Flink Forward San Francisco 2019: Managing Flink on Kubernetes - FlinkK8sOper...
Net35 Overview
Ad

Similar to Meteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern Apps (20)

PPTX
Meet with Meteor
PDF
Meteor ddp
PDF
Meteor Revolution: From DDP to Blaze Reactive Rendering
PPTX
Meteor presentation
PPTX
Meteor dnh2
PDF
Intro to Meteor [Deprecated]
PDF
Getting started with Meteor for Android - Almog Koren, GoPlatfarm
PPTX
Meteor Introduction - Ashish
PPTX
Laurentiu macovei meteor. a better way of building apps
PDF
Introduction to Meteor - Worldwide Meteor Day
PPTX
Meteor intro-2015
PPTX
PPTX
Plone FSR
PPTX
Meteor Day - Nov 6 at La Commune
PDF
MeteorDay Copenhagen
PDF
Meteor Intro @viennajs
ODP
code-camp-meteor
PPTX
Meteor Rails-2015
PDF
Getting Started with Meteor (TCF ITPC 2014)
PPTX
Introduction to meteor
Meet with Meteor
Meteor ddp
Meteor Revolution: From DDP to Blaze Reactive Rendering
Meteor presentation
Meteor dnh2
Intro to Meteor [Deprecated]
Getting started with Meteor for Android - Almog Koren, GoPlatfarm
Meteor Introduction - Ashish
Laurentiu macovei meteor. a better way of building apps
Introduction to Meteor - Worldwide Meteor Day
Meteor intro-2015
Plone FSR
Meteor Day - Nov 6 at La Commune
MeteorDay Copenhagen
Meteor Intro @viennajs
code-camp-meteor
Meteor Rails-2015
Getting Started with Meteor (TCF ITPC 2014)
Introduction to meteor
Ad

More from Sashko Stubailo (6)

PDF
GraphQL over REST at Reactathon 2018
PDF
The Apollo and GraphQL Stack
PDF
Standing out as a new grad candidate
PDF
Modular GraphQL with Schema Stitching
PDF
GraphQL: Enabling a new generation of API developer tools
PDF
Why UI developers love GraphQL
GraphQL over REST at Reactathon 2018
The Apollo and GraphQL Stack
Standing out as a new grad candidate
Modular GraphQL with Schema Stitching
GraphQL: Enabling a new generation of API developer tools
Why UI developers love GraphQL

Recently uploaded (20)

PDF
KodekX | Application Modernization Development
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Encapsulation theory and applications.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
MYSQL Presentation for SQL database connectivity
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPT
Teaching material agriculture food technology
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Electronic commerce courselecture one. Pdf
KodekX | Application Modernization Development
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Chapter 3 Spatial Domain Image Processing.pdf
Encapsulation theory and applications.pdf
Review of recent advances in non-invasive hemoglobin estimation
NewMind AI Monthly Chronicles - July 2025
Mobile App Security Testing_ A Comprehensive Guide.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Unlocking AI with Model Context Protocol (MCP)
NewMind AI Weekly Chronicles - August'25 Week I
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
MYSQL Presentation for SQL database connectivity
The Rise and Fall of 3GPP – Time for a Sabbatical?
Understanding_Digital_Forensics_Presentation.pptx
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Dropbox Q2 2025 Financial Results & Investor Presentation
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Teaching material agriculture food technology
The AUB Centre for AI in Media Proposal.docx
Electronic commerce courselecture one. Pdf

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

  • 1. Designing a New Platform for Modern Apps Emily Stark, MIT SM ‘13! Sashko Stubailo, MIT ‘14! Core Developers at Meteor
  • 2. What is Meteor?! http://github.com/meteor/meteor • An open source JavaScript client and server application framework • Build fast, modern, high quality apps in a fraction of the time http://meteor.com
  • 3. Leaderboard http://meteor.com QUICK APP DEMO $ meteor create -­‐-­‐example leaderboard
  • 4. Modern Web Apps! What do they have in common that makes them so nice to use? http://meteor.com
  • 5. Features of Modern Web Apps! 1. Instant Response http://meteor.com 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. What makes this possible?! Implementation Requirements! http://meteor.com 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. How does Meteor do this stuff?! Livequery (Real-time MongoDB) Minimongo (Client-Side Cache) Tracker (Dependency Tracking) Blaze (Reactive HTML Rendering) http://meteor.com DDP (Distributed Data Protocol) Server Client
  • 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! http://meteor.com
  • 9. DDP Messages! http://meteor.com See the detailed spec at ddp.meteor.com! 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. 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 http://meteor.com
  • 11. Meteor DDP API! // on the client Meteor.subscribe(“players”, onReady); Players.find() // get the data http://meteor.com 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 Meteor.call(“givePoints”, playerId, onResult);
  • 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. http://meteor.com
  • 13. Meteor is hiring!! • Full-time, in San Francisco and remotely • Interns for Winter, Spring, and Summer http://meteor.com Check out meteor.com/jobs! Contact us! ! Emily Stark @estark37 emily@meteor.com Sashko Stubailo @stubailo sashko@meteor.com

Editor's Notes

  • #8: You can mix and match, but it’s a nightmare