2. What is it?
• Binary pub-sub protocol
• Constrained networks
• Constrained clients
• Many clients
• Diverse payloads
3. How does it work?
• Publisher, broker, subscriber
• Broker is the server and
handles accepting and
delivering messages
• Clients can both publish and
subscribe
• These publications and
subscriptions are scoped to
topics
4. How does it work?
• Topics are namespaced and
look like URI paths
• Users/EvanOwen/Faces/Duck
• Wildcards are supported, e.g.
Users/EvanOwen/Faces/# or
Users/+/Faces/Duck
5. How does it work?
• Three Quality of Service levels
• Sessions can be durable
• Publications can be retained
6. Why do we care?
• Low-latency push delivery
• Much less overhead than
HTTP
• This enables us to do things
we can’t right now
9. Things we care about
• Authentication
• Authorization
• SSL
• Horizontal scalability
• HTTP fallback
10. Things we don’t care about
• Noisiness
• Durable subscriptions
• Guaranteed delivery
11. How it might work
• Single publish and subscribe endpoints for each
user
• Broker connected to Homebase, asks Homebase
for permission information
• App uses HTTP to sync state of the world, MQTT
to receive events while connected
• App can fall back on HTTP connection if MQTT is
unavailable