SlideShare a Scribd company logo
Copyright © by HiveMQ. All Rights Reserved.
WELCOME
• HiveMQ CTO
• Strong background in distributed and large scale
systems architecture
• OASIS MQTT TC Member
• Author of „The Technical Foundations of IoT“
• Conference Speaker
• Program committee member for German and
international IoT conferences
Dominik
Obermaier
@dobermai
Copyright © by HiveMQ. All Rights Reserved.
MQTT REFRESHER
Copyright © by HiveMQ. All Rights Reserved.
MQTT Overview
● Binary with minimal overhead
● Persistent (offline) sessions
● Retained Messages
● 3 QoS Levels
● IoT Messaging Protocol
Copyright © by HiveMQ. All Rights Reserved.
MQTT Use
Cases
Push Communication
Reliable Communication over
unreliable networks
Constrained Devices
Low Bandwidth and
High Latency
Enterprise backends to
mobile communication
Copyright © by HiveMQ. All Rights Reserved.
MQTT Use
Cases
Connected Car
Industry 4.0 / IIoT
Logistics / Transportation
(IoT) Messaging
Middleware
Telecommunications
Copyright © by HiveMQ. All Rights Reserved.
Publish / Subscribe
Copyright © by HiveMQ. All Rights Reserved.
MQTT HISTORY
Copyright © by HiveMQ. All Rights Reserved.
2010
MQTT 3.1 opened as
royalty free protocol
1999
MQTT invented
for oil pipeline
monitoring
2012
Mosquitto 1.0
released
Copyright © by HiveMQ. All Rights Reserved.
2018
MQTT 5 officially
released
2013
HiveMQ 1.3 released
2013
OASIS TC formed
2014
MQTT 3.1.1
officially released
2018
HiveMQ 4 has
MQTT5 support
Copyright © by HiveMQ. All Rights Reserved.
MQTT is quite popular nowadays
Copyright © by HiveMQ. All Rights Reserved.
THE MQTT TC
Copyright © by HiveMQ. All Rights Reserved.
MQTT 5
Copyright © by HiveMQ. All Rights Reserved.
MQTT 5 - Overview
● Clarifications of the 3.1.1 specification
● Many new features
● First public release in January 2018,
official release in March 2019
● Non-backward compatible
● Successor of MQTT 3.1.1
Copyright © by HiveMQ. All Rights Reserved.
MQTT 5 - Goals
● Performance improvements and support for small
clients
● Extensibility mechanisms including user properties
● Formalize common patterns including capability
discovery and request response
● Improved error reporting
● Enhancements for scalability and large scale
systems
Copyright © by HiveMQ. All Rights Reserved.
FOUNDATIONAL CHANGES
Copyright © by HiveMQ. All Rights Reserved.
Properties in MQTT Header
& Reason Codes
•Return Codes for Unsupported Features
•ACKs can contain Negative acknowledgements
•Retain Available
•Maximum QoS
•Wildcard Available
•Subscription Identifiers available
•Shared Subscriptions available
•Maximum Message Size
•Server Keep Alive
Copyright © by HiveMQ. All Rights Reserved.
Streamlined Session State / Lifecycle
Source:
https://www.eclipse.org/community/eclipse_newsletter/2016/september/article3.php
Copyright © by HiveMQ. All Rights Reserved.
Other Notable Changes
● New Protocol version on the wire
● New Data Type: UTF-8 String pairs
● Bi-directional DISCONNECT packets
● Passwords without usernames allowed
● No QoS 1 & 2 retry
Copyright © by HiveMQ. All Rights Reserved.
NEW FEATURES
Copyright © by HiveMQ. All Rights Reserved.
Session & Message Expiry
Copyright © by HiveMQ. All Rights Reserved.
Session & Message Expiry
● Applies to online and queued
messages
● Publication Expiry interval is an optional part of a
PUBLISH message
● Broker expires session after the given interval as
soon as the client disconnects
● Session Expiry Interval in
Seconds
● Session Expiry is an optional part of the CONNECT
message
Copyright © by HiveMQ. All Rights Reserved.
User Properties
Copyright © by HiveMQ. All Rights Reserved.
User Properties
● An unlimited number of user properties can be added
● UTF-8 encoded Strings
● Can be part of most MQTT packets
● User Defined Metadata Headers
Copyright © by HiveMQ. All Rights Reserved.
Shared Subscriptions
Copyright © by HiveMQ. All Rights Reserved.
Shared Subscriptions
● Also supported by HiveMQ for MQTT 3.1 and MQTT
3.1.1
● Useful for scaling out backend subscribers
● Special Syntax: $share/{ID}/my/topic
● Client Load Balancing. Multiple clients share the
same subscription
● Up-/Downscaling of clients at runtime possible.
Perfect for cloud native scenarios (Kubernetes, …)
* HiveMQ fully supports all optional features, including this feature
● Optional feature, not supported by all vendors*
Copyright © by HiveMQ. All Rights Reserved.
Shared Subscriptions
Copyright © by HiveMQ. All Rights Reserved.
Negative Acknowledgements
Copyright © by HiveMQ. All Rights Reserved.
Return Codes &
Negative Acknowledgements
● DISCONNECT messages allow clients to figure out
why they were disconnected
● Return Codes from protocol level errors to application
level errors
● Return codes optionally, server can choose for
security reasons to just disconnect clients
● Reason Strings are optionally available
● Most MQTT packets can carry error codes
Copyright © by HiveMQ. All Rights Reserved.
Payload Format Indicator
Copyright © by HiveMQ. All Rights Reserved.
Payload Format Indicator &
Content Type
● “Payload Format Indicator” can be binary or UTF-8
● “Content Type” optional header can carry a MIME
type
● Receiver may validate the format indicator
● Return codes for ACK messages available if
payload format is invalid
● Optional part of a PUBLISH message
Copyright © by HiveMQ. All Rights Reserved.
Request / Response
Copyright © by HiveMQ. All Rights Reserved.
Request / Response
Copyright © by HiveMQ. All Rights Reserved.
Request / Response
● “Correlation Data” header for correlation of
request/response
● “Request Response Information” Header for
response topic
● Publishing Client must subscribe to a response
topic prior to sending data
● Request / Response is a pattern that is also
available for MQTT 3.1.1
● Pattern for “business ACKs”
Copyright © by HiveMQ. All Rights Reserved.
Topic Aliases
Copyright © by HiveMQ. All Rights Reserved.
Topic Aliases
● Optional feature, not supported by all vendors*
● Client -> Server as well as Server ->Client
● Reduces the size of messages significantly for large
topics
● Clients can send numeric aliases instead of the
whole topic for further MQTT PUBLISH messages
* HiveMQ fully supports all optional features, including this feature
Copyright © by HiveMQ. All Rights Reserved.
Flow Control
Copyright © by HiveMQ. All Rights Reserved.
Flow Control
● Replaces the MQTT 3 “in-flight window” concept
● Prevents overload of constrained clients
● Only applies to QoS 1 and 2 messages
● Flow Control allows MQTT clients (and servers) to
indicate the maximum messages that can be
processed concurrently
Copyright © by HiveMQ. All Rights Reserved.
Small Improvements
Copyright © by HiveMQ. All Rights Reserved.
Small Improvements
● Maximum Message Size Indication
● Server can now also send a DISCONNECT packet
● Passwords without usernames are now allowed
● Subscription ID
● Streamlined Session State
Copyright © by HiveMQ. All Rights Reserved.
● Assigned Client ID
● Server Keep Alive
● Will Delay
● Subscription Options
● Server References
Small Improvements
Copyright © by HiveMQ. All Rights Reserved.
Pitfalls
Copyright © by HiveMQ. All Rights Reserved.
● So MQTT 5 != MQTT 5 for different vendors
● Server can indicate optional features but this
requires business logic on the client side!
● Some mandatory and beloved MQTT 3 features are
now optional, so beware!
● MQTT 5 has optional features*
● Many sophisticated standalone products (like
HiveMQ or mosquitto) fully support MQTT 5 with all
optional features
#1 Optional Features
* HiveMQ fully supports all optional features
Copyright © by HiveMQ. All Rights Reserved.
#1 Optional Features
•Retain Available
•Maximum QoS
•Wildcard Available
•Subscription Identifiers available
•Shared Subscriptions available
•Maximum Message Size
•Server Keep Alive
List of optional features a server can indicate
Copyright © by HiveMQ. All Rights Reserved.
● MQTT 3 and MQTT 5 features are mapped for
compatibility and can be used simultaneously with
HiveMQ
● Brokers like HiveMQ support hybrid MQTT 3 and 5
operation
● Reality: Many MQTT 5 projects also have MQTT 3
devices in the mix
● MQTT 5 is not compatible with MQTT 3
#2 Compatibility
● Talk to your vendor about the migration path
Copyright © by HiveMQ. All Rights Reserved.
● See next slides for an overview of MQTT 5 software
● Production ready MQTT 5 clients are available
● MQTT 5 clients for some language still in early days
● Vast amount of MQTT 3 clients available
#3 Client Ecosystem
Copyright © by HiveMQ. All Rights Reserved.
● Decide on what you really require or use a secure and
opinionated state-of-the-art solution like the HiveMQ
Enterprise Security Extension
● MQTT 5 introduces a new Packet: AUTH packet
● MQTT 5 introduces new CONNECT Headers
○ Authentication Method
○ Authentication Data
#4 Additional Security Options
Copyright © by HiveMQ. All Rights Reserved.
● Hint: Most things you’d like to intercept (e.g. with the
extension system of your broker) should probably be
a user property
● Clearly decide beforehand what is metadata and what
is payload
● User properties of MQTT 5 are similar to HTTP
headers and allow to create custom protocols on
top of MQTT
#5 Don’t overuse User Properties
● Antipattern: No payload but lots of user properties
Copyright © by HiveMQ. All Rights Reserved.
SHOULD WE UPGRADE YET?
Copyright © by HiveMQ. All Rights Reserved.
Broker Compatibility
Copyright © by HiveMQ. All Rights Reserved.
● Version 1.6 added MQTT 5 support
● Supports optional features
● MQTT 5 support since April 2019
Mosquitto
Copyright © by HiveMQ. All Rights Reserved.
● Extension system allows to use all MQTT 5
functionality
● Hybrid MQTT 3 and 5 possible at scale (up to
10,000,000 concurrent MQTT connections)
● MQTT 5 Support with HiveMQ 4
HiveMQ
● Open Source Community Edition also supports
100% of all MQTT 5 features
● 100% MQTT 5 support since 2018,
including all optional features
Copyright © by HiveMQ. All Rights Reserved.
● Google Cloud IoT Core: No MQTT 5 support
● AWS IoT Core: No MQTT 5 Support
Cloud Platforms
● Azure IoT Hub: No MQTT 5 Support
Copyright © by HiveMQ. All Rights Reserved.
Client Compatibility
Copyright © by HiveMQ. All Rights Reserved.
Eclipse Paho MQTT 5 Support
● C: YES
● C++: No
● C Embedded: No
● Java: No
● Android: No
● Javascript: No
● Python: No
● Go: No
● Rust: YES
● C#.NET: No
Copyright © by HiveMQ. All Rights Reserved.
● Reactive Design with built-in backpressure handling
● Java MQTT 5 (and 3.1.1) Open Source Client
library. Designed for production use
HiveMQ MQTT Client
● Built for high scalability and embeddability.
Supports tens of thousands messages per second!
● Available on Github under Apache 2 license
● Created and maintained by the HiveMQ
and BMW CarIT folks
Copyright © by HiveMQ. All Rights Reserved.
SHOULD WE UPGRADE YET?
Copyright © by HiveMQ. All Rights Reserved.
Bonus!
Copyright © by HiveMQ. All Rights Reserved.
● Already supports MQTT 5
● Bi-Directional Integration of MQTT to Kafka (& vice
versa)
HiveMQ Kafka Extensions
● Allows to parse Kafka Messages and extract data
for MQTT 5 headers (+ User Properties)
● Extreme throughput and high scale
● Hybrid mode with MQTT 3 and MQTT 5
possible
Copyright © by HiveMQ. All Rights Reserved.
Kafka
Copyright © by HiveMQ. All Rights Reserved.
● Be careful, MQTT 5 has optional features. Talk to
your vendor to make sure you get all features you
require
● MQTT 5 has new features you shouldn’t miss for
new projects (especially Industry 4.0!)
Summary
● MQTT 5 is used in production for mission critical
use cases today
● Vendors like HiveMQ allow seamless
transition and hybrid mode for MQTT 5
Copyright © by HiveMQ. All Rights Reserved.
Next Steps
● MQTT + Kafka - Creating state of the art, highly scalable and
fault tolerant messaging pipelines from device to application
and back
● Monitoring and observability: How to find the needle in the
haystack for IoT production deployments?
● Cloud native MQTT: How to run large scale deployments on
Kubernetes and integrate with the cloud native ecosystem
● Security: How to integrate existing third-party systems like
databases, REST APIs, Active Directory and OAuth?
Reach out to me directly to schedule a conversation: dominik@hivemq.com
Copyright © by HiveMQ. All Rights Reserved.
Resources
MQTT Essentials Series
Get HiveMQ
Get Started with MQTT
ANY
QUESTIONS?
Reach out to community.hivemq.com
THANK YOU
Stay updated on upcoming webinars
Subscribe to our Newsletter!

More Related Content

Similar to MQTT 5 - Why You Need It and Potential Pitfalls

MQTT 5 - What's New?
MQTT 5 - What's New?MQTT 5 - What's New?
MQTT 5 - What's New?
Dominik Obermaier
 
IoT Security Issues and MQTT
IoT Security Issues and MQTTIoT Security Issues and MQTT
IoT Security Issues and MQTT
HiveMQ
 
IAB-5039 : MQTT: A Protocol for the Internet of Things (InterConnect 2015)
IAB-5039 : MQTT: A Protocol for the Internet of Things (InterConnect 2015)IAB-5039 : MQTT: A Protocol for the Internet of Things (InterConnect 2015)
IAB-5039 : MQTT: A Protocol for the Internet of Things (InterConnect 2015)
PeterNiblett
 
MQTT AS A KEY TECHNOLOGY FOR INDUSTRY 4.0 & IIoT
MQTT AS A KEY TECHNOLOGY FOR INDUSTRY 4.0 & IIoT MQTT AS A KEY TECHNOLOGY FOR INDUSTRY 4.0 & IIoT
MQTT AS A KEY TECHNOLOGY FOR INDUSTRY 4.0 & IIoT
Dominik Obermaier
 
Mqtt
MqttMqtt
Mqtt
abinaya m
 
HiveMQ + Kafka - The Ideal Solution for IoT MQTT Data Integration
HiveMQ + Kafka - The Ideal Solution for IoT MQTT Data IntegrationHiveMQ + Kafka - The Ideal Solution for IoT MQTT Data Integration
HiveMQ + Kafka - The Ideal Solution for IoT MQTT Data Integration
HiveMQ
 
Building Scalable & Reliable MQTT Clients for Enterprise Computing
Building Scalable & Reliable MQTT Clients for Enterprise ComputingBuilding Scalable & Reliable MQTT Clients for Enterprise Computing
Building Scalable & Reliable MQTT Clients for Enterprise Computing
SilvioGiebl
 
How to Stream IoT MQTT Messages Into the Azure Event Hubs Service
How to Stream IoT MQTT Messages Into the Azure Event Hubs ServiceHow to Stream IoT MQTT Messages Into the Azure Event Hubs Service
How to Stream IoT MQTT Messages Into the Azure Event Hubs Service
HiveMQ
 
Introduction to MQTT Sparkplug: Plug 'n Play Interoperability for IIoT
Introduction to MQTT Sparkplug: Plug 'n Play Interoperability for IIoTIntroduction to MQTT Sparkplug: Plug 'n Play Interoperability for IIoT
Introduction to MQTT Sparkplug: Plug 'n Play Interoperability for IIoT
HiveMQ
 
Inntroduction to MQTT Sparkplug with HiveMQ and Opto22
Inntroduction to MQTT Sparkplug with HiveMQ and Opto22Inntroduction to MQTT Sparkplug with HiveMQ and Opto22
Inntroduction to MQTT Sparkplug with HiveMQ and Opto22
Dominik Obermaier
 
Lightweight and Scalable IoT Messaging with MQTT
Lightweight and Scalable IoT Messaging with MQTTLightweight and Scalable IoT Messaging with MQTT
Lightweight and Scalable IoT Messaging with MQTT
HiveMQ
 
Software-Infrastrukturen modernisieren in der Produktion - Digitale Transform...
Software-Infrastrukturen modernisieren in der Produktion - Digitale Transform...Software-Infrastrukturen modernisieren in der Produktion - Digitale Transform...
Software-Infrastrukturen modernisieren in der Produktion - Digitale Transform...
Dominik Obermaier
 
HiveMQ Webinar: Lightweight and scalable IoT Messaging with MQTT
HiveMQ Webinar: Lightweight and scalable IoT Messaging with MQTTHiveMQ Webinar: Lightweight and scalable IoT Messaging with MQTT
HiveMQ Webinar: Lightweight and scalable IoT Messaging with MQTT
Dominik Obermaier
 
Machine to Machine Communication with Microsoft Azure IoT Edge & HiveMQ
Machine to Machine Communication with Microsoft Azure IoT Edge & HiveMQMachine to Machine Communication with Microsoft Azure IoT Edge & HiveMQ
Machine to Machine Communication with Microsoft Azure IoT Edge & HiveMQ
HiveMQ
 
HiveMQ + Kafka: The ideal solution for IoT MQTT data integration
HiveMQ + Kafka: The ideal solution for IoT MQTT data integrationHiveMQ + Kafka: The ideal solution for IoT MQTT data integration
HiveMQ + Kafka: The ideal solution for IoT MQTT data integration
MargarethaErber
 
Modernizing the Manufacturing Industry with Kafka and MQTT
Modernizing the Manufacturing Industry with Kafka and MQTT Modernizing the Manufacturing Industry with Kafka and MQTT
Modernizing the Manufacturing Industry with Kafka and MQTT
Dominik Obermaier
 
Simplified IoT Operations With HiveMQ and Datadog
Simplified IoT Operations With HiveMQ and DatadogSimplified IoT Operations With HiveMQ and Datadog
Simplified IoT Operations With HiveMQ and Datadog
HiveMQ
 
Mqtt 5 meetup dortmund
Mqtt 5 meetup dortmundMqtt 5 meetup dortmund
Mqtt 5 meetup dortmund
Florian Raschbichler
 
Best Practices for Streaming Connected Car Data with MQTT & Kafka
Best Practices for Streaming Connected Car Data with MQTT & KafkaBest Practices for Streaming Connected Car Data with MQTT & Kafka
Best Practices for Streaming Connected Car Data with MQTT & Kafka
HiveMQ
 
Lightweight and scalable IoT Messaging with MQTT
Lightweight and scalable IoT Messaging with MQTTLightweight and scalable IoT Messaging with MQTT
Lightweight and scalable IoT Messaging with MQTT
Dominik Obermaier
 

Similar to MQTT 5 - Why You Need It and Potential Pitfalls (20)

MQTT 5 - What's New?
MQTT 5 - What's New?MQTT 5 - What's New?
MQTT 5 - What's New?
 
IoT Security Issues and MQTT
IoT Security Issues and MQTTIoT Security Issues and MQTT
IoT Security Issues and MQTT
 
IAB-5039 : MQTT: A Protocol for the Internet of Things (InterConnect 2015)
IAB-5039 : MQTT: A Protocol for the Internet of Things (InterConnect 2015)IAB-5039 : MQTT: A Protocol for the Internet of Things (InterConnect 2015)
IAB-5039 : MQTT: A Protocol for the Internet of Things (InterConnect 2015)
 
MQTT AS A KEY TECHNOLOGY FOR INDUSTRY 4.0 & IIoT
MQTT AS A KEY TECHNOLOGY FOR INDUSTRY 4.0 & IIoT MQTT AS A KEY TECHNOLOGY FOR INDUSTRY 4.0 & IIoT
MQTT AS A KEY TECHNOLOGY FOR INDUSTRY 4.0 & IIoT
 
Mqtt
MqttMqtt
Mqtt
 
HiveMQ + Kafka - The Ideal Solution for IoT MQTT Data Integration
HiveMQ + Kafka - The Ideal Solution for IoT MQTT Data IntegrationHiveMQ + Kafka - The Ideal Solution for IoT MQTT Data Integration
HiveMQ + Kafka - The Ideal Solution for IoT MQTT Data Integration
 
Building Scalable & Reliable MQTT Clients for Enterprise Computing
Building Scalable & Reliable MQTT Clients for Enterprise ComputingBuilding Scalable & Reliable MQTT Clients for Enterprise Computing
Building Scalable & Reliable MQTT Clients for Enterprise Computing
 
How to Stream IoT MQTT Messages Into the Azure Event Hubs Service
How to Stream IoT MQTT Messages Into the Azure Event Hubs ServiceHow to Stream IoT MQTT Messages Into the Azure Event Hubs Service
How to Stream IoT MQTT Messages Into the Azure Event Hubs Service
 
Introduction to MQTT Sparkplug: Plug 'n Play Interoperability for IIoT
Introduction to MQTT Sparkplug: Plug 'n Play Interoperability for IIoTIntroduction to MQTT Sparkplug: Plug 'n Play Interoperability for IIoT
Introduction to MQTT Sparkplug: Plug 'n Play Interoperability for IIoT
 
Inntroduction to MQTT Sparkplug with HiveMQ and Opto22
Inntroduction to MQTT Sparkplug with HiveMQ and Opto22Inntroduction to MQTT Sparkplug with HiveMQ and Opto22
Inntroduction to MQTT Sparkplug with HiveMQ and Opto22
 
Lightweight and Scalable IoT Messaging with MQTT
Lightweight and Scalable IoT Messaging with MQTTLightweight and Scalable IoT Messaging with MQTT
Lightweight and Scalable IoT Messaging with MQTT
 
Software-Infrastrukturen modernisieren in der Produktion - Digitale Transform...
Software-Infrastrukturen modernisieren in der Produktion - Digitale Transform...Software-Infrastrukturen modernisieren in der Produktion - Digitale Transform...
Software-Infrastrukturen modernisieren in der Produktion - Digitale Transform...
 
HiveMQ Webinar: Lightweight and scalable IoT Messaging with MQTT
HiveMQ Webinar: Lightweight and scalable IoT Messaging with MQTTHiveMQ Webinar: Lightweight and scalable IoT Messaging with MQTT
HiveMQ Webinar: Lightweight and scalable IoT Messaging with MQTT
 
Machine to Machine Communication with Microsoft Azure IoT Edge & HiveMQ
Machine to Machine Communication with Microsoft Azure IoT Edge & HiveMQMachine to Machine Communication with Microsoft Azure IoT Edge & HiveMQ
Machine to Machine Communication with Microsoft Azure IoT Edge & HiveMQ
 
HiveMQ + Kafka: The ideal solution for IoT MQTT data integration
HiveMQ + Kafka: The ideal solution for IoT MQTT data integrationHiveMQ + Kafka: The ideal solution for IoT MQTT data integration
HiveMQ + Kafka: The ideal solution for IoT MQTT data integration
 
Modernizing the Manufacturing Industry with Kafka and MQTT
Modernizing the Manufacturing Industry with Kafka and MQTT Modernizing the Manufacturing Industry with Kafka and MQTT
Modernizing the Manufacturing Industry with Kafka and MQTT
 
Simplified IoT Operations With HiveMQ and Datadog
Simplified IoT Operations With HiveMQ and DatadogSimplified IoT Operations With HiveMQ and Datadog
Simplified IoT Operations With HiveMQ and Datadog
 
Mqtt 5 meetup dortmund
Mqtt 5 meetup dortmundMqtt 5 meetup dortmund
Mqtt 5 meetup dortmund
 
Best Practices for Streaming Connected Car Data with MQTT & Kafka
Best Practices for Streaming Connected Car Data with MQTT & KafkaBest Practices for Streaming Connected Car Data with MQTT & Kafka
Best Practices for Streaming Connected Car Data with MQTT & Kafka
 
Lightweight and scalable IoT Messaging with MQTT
Lightweight and scalable IoT Messaging with MQTTLightweight and scalable IoT Messaging with MQTT
Lightweight and scalable IoT Messaging with MQTT
 

More from HiveMQ

Testing the Scalability of a Robust IoT System with Confidence
Testing the Scalability of a Robust IoT System with ConfidenceTesting the Scalability of a Robust IoT System with Confidence
Testing the Scalability of a Robust IoT System with Confidence
HiveMQ
 
Designing an Edge to Cloud Architecture for IIoT
Designing an Edge to Cloud Architecture for IIoTDesigning an Edge to Cloud Architecture for IIoT
Designing an Edge to Cloud Architecture for IIoT
HiveMQ
 
MQTT.fx on HiveMQ Cloud Testing MQTT in the Cloud
MQTT.fx on HiveMQ Cloud Testing MQTT in the CloudMQTT.fx on HiveMQ Cloud Testing MQTT in the Cloud
MQTT.fx on HiveMQ Cloud Testing MQTT in the Cloud
HiveMQ
 
What's New in HiveMQ [Inside the Upcoming HiveMQ 4.7 Release]
What's New in HiveMQ [Inside the Upcoming HiveMQ 4.7 Release]What's New in HiveMQ [Inside the Upcoming HiveMQ 4.7 Release]
What's New in HiveMQ [Inside the Upcoming HiveMQ 4.7 Release]
HiveMQ
 
HiveMQ & HighByte Presents: Building an Enterprise Unified Namespace (UNS) to...
HiveMQ & HighByte Presents: Building an Enterprise Unified Namespace (UNS) to...HiveMQ & HighByte Presents: Building an Enterprise Unified Namespace (UNS) to...
HiveMQ & HighByte Presents: Building an Enterprise Unified Namespace (UNS) to...
HiveMQ
 
How to Monitor and Observe IoT and MQTT Applications with HiveMQ
How to Monitor and Observe IoT and MQTT Applications with HiveMQ How to Monitor and Observe IoT and MQTT Applications with HiveMQ
How to Monitor and Observe IoT and MQTT Applications with HiveMQ
HiveMQ
 
Connecting the Smart Factory to the Cloud
Connecting the Smart Factory to the CloudConnecting the Smart Factory to the Cloud
Connecting the Smart Factory to the Cloud
HiveMQ
 
Revolutionizing IoT Testing - A Sneak Peek of HiveMQ Swarm
Revolutionizing IoT Testing - A Sneak Peek of HiveMQ SwarmRevolutionizing IoT Testing - A Sneak Peek of HiveMQ Swarm
Revolutionizing IoT Testing - A Sneak Peek of HiveMQ Swarm
HiveMQ
 
Free Your Manufacturing Data with Apache PLC4X & MQTT
Free Your Manufacturing Data with Apache PLC4X & MQTTFree Your Manufacturing Data with Apache PLC4X & MQTT
Free Your Manufacturing Data with Apache PLC4X & MQTT
HiveMQ
 
Build Your Own HiveMQ Extension
Build Your Own HiveMQ ExtensionBuild Your Own HiveMQ Extension
Build Your Own HiveMQ Extension
HiveMQ
 
How to Set up, Run and Scale a Secure MQTT Broker on Kubernetes
How to Set up, Run and Scale a Secure MQTT Broker on KubernetesHow to Set up, Run and Scale a Secure MQTT Broker on Kubernetes
How to Set up, Run and Scale a Secure MQTT Broker on Kubernetes
HiveMQ
 
MQTT - The Key to Scalable Reliable Connected Car Platforms
MQTT - The Key to Scalable Reliable Connected Car PlatformsMQTT - The Key to Scalable Reliable Connected Car Platforms
MQTT - The Key to Scalable Reliable Connected Car Platforms
HiveMQ
 
Modernizing the Manufacturing Industry with MQTT and Kafka
Modernizing the Manufacturing Industry with MQTT and KafkaModernizing the Manufacturing Industry with MQTT and Kafka
Modernizing the Manufacturing Industry with MQTT and Kafka
HiveMQ
 
Implementing the 5 Pillars of IT Security for MQTT
Implementing the 5 Pillars of IT Security for MQTTImplementing the 5 Pillars of IT Security for MQTT
Implementing the 5 Pillars of IT Security for MQTT
HiveMQ
 
4 Paradigm Shifts for the Connected Car of the Future
4 Paradigm Shifts for the Connected Car of the Future4 Paradigm Shifts for the Connected Car of the Future
4 Paradigm Shifts for the Connected Car of the Future
HiveMQ
 
HiveMQ Cloud Webinar
HiveMQ Cloud WebinarHiveMQ Cloud Webinar
HiveMQ Cloud Webinar
HiveMQ
 

More from HiveMQ (16)

Testing the Scalability of a Robust IoT System with Confidence
Testing the Scalability of a Robust IoT System with ConfidenceTesting the Scalability of a Robust IoT System with Confidence
Testing the Scalability of a Robust IoT System with Confidence
 
Designing an Edge to Cloud Architecture for IIoT
Designing an Edge to Cloud Architecture for IIoTDesigning an Edge to Cloud Architecture for IIoT
Designing an Edge to Cloud Architecture for IIoT
 
MQTT.fx on HiveMQ Cloud Testing MQTT in the Cloud
MQTT.fx on HiveMQ Cloud Testing MQTT in the CloudMQTT.fx on HiveMQ Cloud Testing MQTT in the Cloud
MQTT.fx on HiveMQ Cloud Testing MQTT in the Cloud
 
What's New in HiveMQ [Inside the Upcoming HiveMQ 4.7 Release]
What's New in HiveMQ [Inside the Upcoming HiveMQ 4.7 Release]What's New in HiveMQ [Inside the Upcoming HiveMQ 4.7 Release]
What's New in HiveMQ [Inside the Upcoming HiveMQ 4.7 Release]
 
HiveMQ & HighByte Presents: Building an Enterprise Unified Namespace (UNS) to...
HiveMQ & HighByte Presents: Building an Enterprise Unified Namespace (UNS) to...HiveMQ & HighByte Presents: Building an Enterprise Unified Namespace (UNS) to...
HiveMQ & HighByte Presents: Building an Enterprise Unified Namespace (UNS) to...
 
How to Monitor and Observe IoT and MQTT Applications with HiveMQ
How to Monitor and Observe IoT and MQTT Applications with HiveMQ How to Monitor and Observe IoT and MQTT Applications with HiveMQ
How to Monitor and Observe IoT and MQTT Applications with HiveMQ
 
Connecting the Smart Factory to the Cloud
Connecting the Smart Factory to the CloudConnecting the Smart Factory to the Cloud
Connecting the Smart Factory to the Cloud
 
Revolutionizing IoT Testing - A Sneak Peek of HiveMQ Swarm
Revolutionizing IoT Testing - A Sneak Peek of HiveMQ SwarmRevolutionizing IoT Testing - A Sneak Peek of HiveMQ Swarm
Revolutionizing IoT Testing - A Sneak Peek of HiveMQ Swarm
 
Free Your Manufacturing Data with Apache PLC4X & MQTT
Free Your Manufacturing Data with Apache PLC4X & MQTTFree Your Manufacturing Data with Apache PLC4X & MQTT
Free Your Manufacturing Data with Apache PLC4X & MQTT
 
Build Your Own HiveMQ Extension
Build Your Own HiveMQ ExtensionBuild Your Own HiveMQ Extension
Build Your Own HiveMQ Extension
 
How to Set up, Run and Scale a Secure MQTT Broker on Kubernetes
How to Set up, Run and Scale a Secure MQTT Broker on KubernetesHow to Set up, Run and Scale a Secure MQTT Broker on Kubernetes
How to Set up, Run and Scale a Secure MQTT Broker on Kubernetes
 
MQTT - The Key to Scalable Reliable Connected Car Platforms
MQTT - The Key to Scalable Reliable Connected Car PlatformsMQTT - The Key to Scalable Reliable Connected Car Platforms
MQTT - The Key to Scalable Reliable Connected Car Platforms
 
Modernizing the Manufacturing Industry with MQTT and Kafka
Modernizing the Manufacturing Industry with MQTT and KafkaModernizing the Manufacturing Industry with MQTT and Kafka
Modernizing the Manufacturing Industry with MQTT and Kafka
 
Implementing the 5 Pillars of IT Security for MQTT
Implementing the 5 Pillars of IT Security for MQTTImplementing the 5 Pillars of IT Security for MQTT
Implementing the 5 Pillars of IT Security for MQTT
 
4 Paradigm Shifts for the Connected Car of the Future
4 Paradigm Shifts for the Connected Car of the Future4 Paradigm Shifts for the Connected Car of the Future
4 Paradigm Shifts for the Connected Car of the Future
 
HiveMQ Cloud Webinar
HiveMQ Cloud WebinarHiveMQ Cloud Webinar
HiveMQ Cloud Webinar
 

Recently uploaded

Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 

Recently uploaded (20)

Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 

MQTT 5 - Why You Need It and Potential Pitfalls

  • 1.
  • 2. Copyright © by HiveMQ. All Rights Reserved. WELCOME • HiveMQ CTO • Strong background in distributed and large scale systems architecture • OASIS MQTT TC Member • Author of „The Technical Foundations of IoT“ • Conference Speaker • Program committee member for German and international IoT conferences Dominik Obermaier @dobermai
  • 3. Copyright © by HiveMQ. All Rights Reserved. MQTT REFRESHER
  • 4. Copyright © by HiveMQ. All Rights Reserved. MQTT Overview ● Binary with minimal overhead ● Persistent (offline) sessions ● Retained Messages ● 3 QoS Levels ● IoT Messaging Protocol
  • 5. Copyright © by HiveMQ. All Rights Reserved. MQTT Use Cases Push Communication Reliable Communication over unreliable networks Constrained Devices Low Bandwidth and High Latency Enterprise backends to mobile communication
  • 6. Copyright © by HiveMQ. All Rights Reserved. MQTT Use Cases Connected Car Industry 4.0 / IIoT Logistics / Transportation (IoT) Messaging Middleware Telecommunications
  • 7. Copyright © by HiveMQ. All Rights Reserved. Publish / Subscribe
  • 8. Copyright © by HiveMQ. All Rights Reserved. MQTT HISTORY
  • 9. Copyright © by HiveMQ. All Rights Reserved. 2010 MQTT 3.1 opened as royalty free protocol 1999 MQTT invented for oil pipeline monitoring 2012 Mosquitto 1.0 released
  • 10. Copyright © by HiveMQ. All Rights Reserved. 2018 MQTT 5 officially released 2013 HiveMQ 1.3 released 2013 OASIS TC formed 2014 MQTT 3.1.1 officially released 2018 HiveMQ 4 has MQTT5 support
  • 11. Copyright © by HiveMQ. All Rights Reserved. MQTT is quite popular nowadays
  • 12. Copyright © by HiveMQ. All Rights Reserved. THE MQTT TC
  • 13. Copyright © by HiveMQ. All Rights Reserved. MQTT 5
  • 14. Copyright © by HiveMQ. All Rights Reserved. MQTT 5 - Overview ● Clarifications of the 3.1.1 specification ● Many new features ● First public release in January 2018, official release in March 2019 ● Non-backward compatible ● Successor of MQTT 3.1.1
  • 15. Copyright © by HiveMQ. All Rights Reserved. MQTT 5 - Goals ● Performance improvements and support for small clients ● Extensibility mechanisms including user properties ● Formalize common patterns including capability discovery and request response ● Improved error reporting ● Enhancements for scalability and large scale systems
  • 16. Copyright © by HiveMQ. All Rights Reserved. FOUNDATIONAL CHANGES
  • 17. Copyright © by HiveMQ. All Rights Reserved. Properties in MQTT Header & Reason Codes •Return Codes for Unsupported Features •ACKs can contain Negative acknowledgements •Retain Available •Maximum QoS •Wildcard Available •Subscription Identifiers available •Shared Subscriptions available •Maximum Message Size •Server Keep Alive
  • 18. Copyright © by HiveMQ. All Rights Reserved. Streamlined Session State / Lifecycle Source: https://www.eclipse.org/community/eclipse_newsletter/2016/september/article3.php
  • 19. Copyright © by HiveMQ. All Rights Reserved. Other Notable Changes ● New Protocol version on the wire ● New Data Type: UTF-8 String pairs ● Bi-directional DISCONNECT packets ● Passwords without usernames allowed ● No QoS 1 & 2 retry
  • 20. Copyright © by HiveMQ. All Rights Reserved. NEW FEATURES
  • 21. Copyright © by HiveMQ. All Rights Reserved. Session & Message Expiry
  • 22. Copyright © by HiveMQ. All Rights Reserved. Session & Message Expiry ● Applies to online and queued messages ● Publication Expiry interval is an optional part of a PUBLISH message ● Broker expires session after the given interval as soon as the client disconnects ● Session Expiry Interval in Seconds ● Session Expiry is an optional part of the CONNECT message
  • 23. Copyright © by HiveMQ. All Rights Reserved. User Properties
  • 24. Copyright © by HiveMQ. All Rights Reserved. User Properties ● An unlimited number of user properties can be added ● UTF-8 encoded Strings ● Can be part of most MQTT packets ● User Defined Metadata Headers
  • 25. Copyright © by HiveMQ. All Rights Reserved. Shared Subscriptions
  • 26. Copyright © by HiveMQ. All Rights Reserved. Shared Subscriptions ● Also supported by HiveMQ for MQTT 3.1 and MQTT 3.1.1 ● Useful for scaling out backend subscribers ● Special Syntax: $share/{ID}/my/topic ● Client Load Balancing. Multiple clients share the same subscription ● Up-/Downscaling of clients at runtime possible. Perfect for cloud native scenarios (Kubernetes, …) * HiveMQ fully supports all optional features, including this feature ● Optional feature, not supported by all vendors*
  • 27. Copyright © by HiveMQ. All Rights Reserved. Shared Subscriptions
  • 28. Copyright © by HiveMQ. All Rights Reserved. Negative Acknowledgements
  • 29. Copyright © by HiveMQ. All Rights Reserved. Return Codes & Negative Acknowledgements ● DISCONNECT messages allow clients to figure out why they were disconnected ● Return Codes from protocol level errors to application level errors ● Return codes optionally, server can choose for security reasons to just disconnect clients ● Reason Strings are optionally available ● Most MQTT packets can carry error codes
  • 30. Copyright © by HiveMQ. All Rights Reserved. Payload Format Indicator
  • 31. Copyright © by HiveMQ. All Rights Reserved. Payload Format Indicator & Content Type ● “Payload Format Indicator” can be binary or UTF-8 ● “Content Type” optional header can carry a MIME type ● Receiver may validate the format indicator ● Return codes for ACK messages available if payload format is invalid ● Optional part of a PUBLISH message
  • 32. Copyright © by HiveMQ. All Rights Reserved. Request / Response
  • 33. Copyright © by HiveMQ. All Rights Reserved. Request / Response
  • 34. Copyright © by HiveMQ. All Rights Reserved. Request / Response ● “Correlation Data” header for correlation of request/response ● “Request Response Information” Header for response topic ● Publishing Client must subscribe to a response topic prior to sending data ● Request / Response is a pattern that is also available for MQTT 3.1.1 ● Pattern for “business ACKs”
  • 35. Copyright © by HiveMQ. All Rights Reserved. Topic Aliases
  • 36. Copyright © by HiveMQ. All Rights Reserved. Topic Aliases ● Optional feature, not supported by all vendors* ● Client -> Server as well as Server ->Client ● Reduces the size of messages significantly for large topics ● Clients can send numeric aliases instead of the whole topic for further MQTT PUBLISH messages * HiveMQ fully supports all optional features, including this feature
  • 37. Copyright © by HiveMQ. All Rights Reserved. Flow Control
  • 38. Copyright © by HiveMQ. All Rights Reserved. Flow Control ● Replaces the MQTT 3 “in-flight window” concept ● Prevents overload of constrained clients ● Only applies to QoS 1 and 2 messages ● Flow Control allows MQTT clients (and servers) to indicate the maximum messages that can be processed concurrently
  • 39. Copyright © by HiveMQ. All Rights Reserved. Small Improvements
  • 40. Copyright © by HiveMQ. All Rights Reserved. Small Improvements ● Maximum Message Size Indication ● Server can now also send a DISCONNECT packet ● Passwords without usernames are now allowed ● Subscription ID ● Streamlined Session State
  • 41. Copyright © by HiveMQ. All Rights Reserved. ● Assigned Client ID ● Server Keep Alive ● Will Delay ● Subscription Options ● Server References Small Improvements
  • 42. Copyright © by HiveMQ. All Rights Reserved. Pitfalls
  • 43. Copyright © by HiveMQ. All Rights Reserved. ● So MQTT 5 != MQTT 5 for different vendors ● Server can indicate optional features but this requires business logic on the client side! ● Some mandatory and beloved MQTT 3 features are now optional, so beware! ● MQTT 5 has optional features* ● Many sophisticated standalone products (like HiveMQ or mosquitto) fully support MQTT 5 with all optional features #1 Optional Features * HiveMQ fully supports all optional features
  • 44. Copyright © by HiveMQ. All Rights Reserved. #1 Optional Features •Retain Available •Maximum QoS •Wildcard Available •Subscription Identifiers available •Shared Subscriptions available •Maximum Message Size •Server Keep Alive List of optional features a server can indicate
  • 45. Copyright © by HiveMQ. All Rights Reserved. ● MQTT 3 and MQTT 5 features are mapped for compatibility and can be used simultaneously with HiveMQ ● Brokers like HiveMQ support hybrid MQTT 3 and 5 operation ● Reality: Many MQTT 5 projects also have MQTT 3 devices in the mix ● MQTT 5 is not compatible with MQTT 3 #2 Compatibility ● Talk to your vendor about the migration path
  • 46. Copyright © by HiveMQ. All Rights Reserved. ● See next slides for an overview of MQTT 5 software ● Production ready MQTT 5 clients are available ● MQTT 5 clients for some language still in early days ● Vast amount of MQTT 3 clients available #3 Client Ecosystem
  • 47. Copyright © by HiveMQ. All Rights Reserved. ● Decide on what you really require or use a secure and opinionated state-of-the-art solution like the HiveMQ Enterprise Security Extension ● MQTT 5 introduces a new Packet: AUTH packet ● MQTT 5 introduces new CONNECT Headers ○ Authentication Method ○ Authentication Data #4 Additional Security Options
  • 48. Copyright © by HiveMQ. All Rights Reserved. ● Hint: Most things you’d like to intercept (e.g. with the extension system of your broker) should probably be a user property ● Clearly decide beforehand what is metadata and what is payload ● User properties of MQTT 5 are similar to HTTP headers and allow to create custom protocols on top of MQTT #5 Don’t overuse User Properties ● Antipattern: No payload but lots of user properties
  • 49. Copyright © by HiveMQ. All Rights Reserved. SHOULD WE UPGRADE YET?
  • 50. Copyright © by HiveMQ. All Rights Reserved. Broker Compatibility
  • 51. Copyright © by HiveMQ. All Rights Reserved. ● Version 1.6 added MQTT 5 support ● Supports optional features ● MQTT 5 support since April 2019 Mosquitto
  • 52. Copyright © by HiveMQ. All Rights Reserved. ● Extension system allows to use all MQTT 5 functionality ● Hybrid MQTT 3 and 5 possible at scale (up to 10,000,000 concurrent MQTT connections) ● MQTT 5 Support with HiveMQ 4 HiveMQ ● Open Source Community Edition also supports 100% of all MQTT 5 features ● 100% MQTT 5 support since 2018, including all optional features
  • 53. Copyright © by HiveMQ. All Rights Reserved. ● Google Cloud IoT Core: No MQTT 5 support ● AWS IoT Core: No MQTT 5 Support Cloud Platforms ● Azure IoT Hub: No MQTT 5 Support
  • 54. Copyright © by HiveMQ. All Rights Reserved. Client Compatibility
  • 55. Copyright © by HiveMQ. All Rights Reserved. Eclipse Paho MQTT 5 Support ● C: YES ● C++: No ● C Embedded: No ● Java: No ● Android: No ● Javascript: No ● Python: No ● Go: No ● Rust: YES ● C#.NET: No
  • 56. Copyright © by HiveMQ. All Rights Reserved. ● Reactive Design with built-in backpressure handling ● Java MQTT 5 (and 3.1.1) Open Source Client library. Designed for production use HiveMQ MQTT Client ● Built for high scalability and embeddability. Supports tens of thousands messages per second! ● Available on Github under Apache 2 license ● Created and maintained by the HiveMQ and BMW CarIT folks
  • 57. Copyright © by HiveMQ. All Rights Reserved. SHOULD WE UPGRADE YET?
  • 58. Copyright © by HiveMQ. All Rights Reserved. Bonus!
  • 59. Copyright © by HiveMQ. All Rights Reserved. ● Already supports MQTT 5 ● Bi-Directional Integration of MQTT to Kafka (& vice versa) HiveMQ Kafka Extensions ● Allows to parse Kafka Messages and extract data for MQTT 5 headers (+ User Properties) ● Extreme throughput and high scale ● Hybrid mode with MQTT 3 and MQTT 5 possible
  • 60. Copyright © by HiveMQ. All Rights Reserved. Kafka
  • 61. Copyright © by HiveMQ. All Rights Reserved. ● Be careful, MQTT 5 has optional features. Talk to your vendor to make sure you get all features you require ● MQTT 5 has new features you shouldn’t miss for new projects (especially Industry 4.0!) Summary ● MQTT 5 is used in production for mission critical use cases today ● Vendors like HiveMQ allow seamless transition and hybrid mode for MQTT 5
  • 62. Copyright © by HiveMQ. All Rights Reserved. Next Steps ● MQTT + Kafka - Creating state of the art, highly scalable and fault tolerant messaging pipelines from device to application and back ● Monitoring and observability: How to find the needle in the haystack for IoT production deployments? ● Cloud native MQTT: How to run large scale deployments on Kubernetes and integrate with the cloud native ecosystem ● Security: How to integrate existing third-party systems like databases, REST APIs, Active Directory and OAuth? Reach out to me directly to schedule a conversation: dominik@hivemq.com
  • 63. Copyright © by HiveMQ. All Rights Reserved. Resources MQTT Essentials Series Get HiveMQ Get Started with MQTT
  • 64. ANY QUESTIONS? Reach out to community.hivemq.com
  • 65. THANK YOU Stay updated on upcoming webinars Subscribe to our Newsletter!