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.
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
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
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