Managed MQTT Cloud

Dedicated MQTT Broker: When You Outgrow Serverless

A dedicated MQTT broker gives your fleet an isolated cluster with predictable performance. Learn the signs you have outgrown serverless, how to size capacity, and how to migrate safely.

Dedicated MQTT broker illustration showing a single isolated cloud cluster serving one company's device fleet with reserved capacity
Run this on your own MQTT brokerGet a private, managed MQTT broker on the Free plan and start from ready-made code samples.
Try it free Code samples No card required

A dedicated MQTT broker gives one customer an isolated broker cluster instead of a slice of a shared one, so performance and capacity are reserved for your fleet alone. This guide explains what isolation buys you, the signals that you have outgrown a serverless tier, how to plan capacity before you switch, and a practical checklist for moving from ConnectMQ Serverless to Dedicated.

What a Dedicated MQTT Broker Is

On a serverless tier, many tenants share one cluster and are separated logically by credentials, topic namespaces and quotas. A dedicated deployment removes the sharing: the provider runs a broker cluster that serves only your organization. You still do not manage servers, operating systems or certificates, because it remains a hosted MQTT broker, but the compute, memory and network behind your endpoint are not shared with anyone else.

That distinction matters less than people expect for small fleets and much more than they expect for large or latency-sensitive ones. If you are still deciding between hosting models at a high level, the cloud MQTT broker pillar explains the full landscape.

What Isolation Buys You

Predictable Performance

On a shared cluster, quotas keep any single tenant from monopolizing resources, but your traffic still runs alongside everyone else's. With a dedicated MQTT broker, a spike from another company simply cannot affect you. Latency and throughput depend on your own workload, which makes behaviour easier to reason about and to test.

Capacity Headroom You Can Plan Around

Shared tiers have fixed quotas per plan. A dedicated cluster is sized for your expected load, so you plan headroom deliberately instead of bumping into a ceiling designed for the average tenant.

A Cleaner Security and Compliance Story

Some security reviews ask a simple question: does any other customer's traffic touch the same broker process? With dedicated hosting the answer is no. That often shortens procurement conversations, even when the shared tier was technically well isolated.

Fewer Constraints on Design

Wide fan-out, many backend consumers on shared subscriptions, larger payloads and QoS 2 flows are all easier to accommodate when the cluster is yours.

Signs You Have Outgrown Serverless

Watch for these signals. One alone is not necessarily a reason to move; several together usually are.

Signal What you see Why it matters
Connection ceiling Refused connections, reason code 0x97 Devices cannot come online
Steady, high message rate Throughput constant all day You are paying for pooled capacity you effectively always use
Latency sensitivity Control loops, alarms, operator UIs Variance hurts more than the average
Procurement requirements Questions about shared infrastructure Isolation simplifies the answer
Fleet growth plan Thousands of devices on the roadmap Better to migrate before the rush
Many backend consumers Several services subscribing to the same streams Fan-out multiplies load

ConnectMQ's Serverless (Paid) plan supports up to 1,000 connections, QoS 2, 1 MB messages and shared subscriptions, which is plenty for many products. Dedicated is for when you want your own isolated cluster rather than higher quotas on a shared one.

Capacity Planning for a Dedicated Deployment

Good capacity planning starts from your devices, not from broker benchmarks. Work through these numbers and write them down; they are what you will discuss when sizing your cluster.

  1. Peak concurrent connections. Devices, gateways, backend services, dashboards and test tools all count. Add the reconnection storm case: after a network outage, every device reconnects within a short window.
  2. Messages per second, inbound. Multiply devices by publish rate. 2,000 devices at one message every 10 seconds is 200 messages per second on average, but alignment (devices reporting on the minute) creates peaks.
  3. Fan-out, outbound. Each published message is delivered once per matching subscription. A message read by a dashboard, a historian and an alerting service is three deliveries.
  4. Payload size. Average and maximum. Compact JSON or binary payloads reduce bandwidth and broker memory.
  5. QoS mix. QoS 1 and 2 add acknowledgement traffic and in-flight state compared with QoS 0. See MQTT QoS levels explained.
  6. Session state. Persistent sessions with queued messages for offline clients consume memory. Set session expiry so abandoned sessions do not accumulate.
  7. Retained messages. One retained message per state topic is cheap; millions of stale retained topics are not.
  8. Growth. Plan for the next 12 to 18 months of fleet growth rather than today's count.

A simple sizing worksheet in plain text helps align your team:

Peak devices online ............ 3,000
Backend/dashboard clients ...... 40
Reconnect storm window ......... 120 s
Avg publish interval ........... 15 s   -> ~200 msg/s inbound
Avg subscribers per message .... 2      -> ~400 msg/s outbound
Avg payload .................... 350 bytes
QoS ............................ 1 (telemetry), 2 (commands)
Retained topics ................ ~3,000 (one status topic per device)
Session expiry ................. 1 hour
Growth target (18 months) ...... 3x

Measure Before You Migrate

Before switching, gather real numbers from your serverless broker. A small Python subscriber that counts messages per top-level topic gives you a quick baseline.

import collections
import ssl
import time

import paho.mqtt.client as mqtt

counts = collections.Counter()
start = time.time()


def on_connect(client, userdata, flags, reason_code, properties):
    print("Connected:", reason_code)
    client.subscribe("#", qos=0)


def on_message(client, userdata, msg):
    counts[msg.topic.split("/")[0]] += 1
    elapsed = time.time() - start
    if elapsed >= 60:
        for prefix, n in counts.most_common():
            print(f"{prefix:20s} {n / elapsed:8.2f} msg/s")
        counts.clear()
        globals()["start"] = time.time()


client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id="YOUR_CLIENT_ID",
                     protocol=mqtt.MQTTv5)
client.username_pw_set("YOUR_USERNAME", "YOUR_PASSWORD")
client.tls_set(cert_reqs=ssl.CERT_REQUIRED)
client.on_connect = on_connect
client.on_message = on_message
client.connect("broker.connectmq.com", 8883, keepalive=60)
client.loop_forever()

Combine this with the portal dashboard and the $SYS/broker/connection/{clientId}/state topic, which shows whether a given client is connected, to understand both traffic and connection behaviour.

Migration Checklist: Serverless to Dedicated

Because a dedicated MQTT broker speaks the same MQTT 3.1.1 and 5.0 protocol on the same ports (1883, 8883, 8083 and 8084 with /mqtt), migration is mostly a configuration exercise.

  1. Make the endpoint configurable. If hostname, port, username, password and client ID are compiled into firmware, fix that first. Store them in NVS, a config file or provisioning data.
  2. Request and provision the dedicated broker. Obtain new credentials from the portal for the dedicated environment.
  3. Move backend consumers first. Point a copy of each backend service at the new broker and verify it receives test traffic.
  4. Bridge during transition with your own tool. If devices will move over days or weeks, run a small relay (Node-RED or a short Python script) that subscribes on the old broker and republishes on the new one. ConnectMQ does not provide built-in bridges, so this is done with an external MQTT client.
  5. Roll devices in waves. Update a small percentage, watch connection state and error logs, then continue.
  6. Republish retained state. Retained messages do not move automatically; have devices publish their current status on connect.
  7. Retire the old broker. When the old one shows no device connections, stop the relay and decommission it.

Common pitfalls: forgetting dashboards and scripts that still point at the old hostname, hard-coded client IDs that collide across environments, and missing retained state after cutover. Our MQTT security best practices guide is worth a read at the same time, since migrations are a natural moment to rotate credentials.

Dedicated, BYOC or Enterprise?

Dedicated is not the only isolated option. If your organization needs the broker to run in its own cloud account, BYOC deploys it there while ConnectMQ manages it. If you must operate everything yourself, Self Managed Enterprise covers that. The enterprise MQTT broker guide compares these models against typical enterprise requirements.

Move to a Dedicated Broker with ConnectMQ

Most teams start on the free Serverless plan at app.connectmq.com (no credit card needed), measure real traffic, and move to a Dedicated cluster when isolation and headroom become priorities. ConnectMQ keeps the same protocols, ports and portal tools across plans, so your devices, topic explorer, dashboards and alert rules keep working the same way after the switch.

Frequently Asked Questions

Is a dedicated MQTT broker faster than serverless?

Not necessarily on average, but it is more predictable because no other tenant shares the cluster. The benefit shows most under sustained load and during spikes.

Do I need to rewrite device firmware to move to dedicated?

No, if connection settings are configurable. The protocol and ports stay the same, so only hostname and credentials change.

Can I keep a serverless broker after moving to dedicated?

Yes. Many teams keep a free serverless broker for development and testing and run production on the dedicated cluster.

Does a dedicated broker include replication across regions?

Do not assume it. Ask about the specific deployment, and design devices to reconnect with backoff and republish state so they recover cleanly from any broker restart.

Related articles

BYOC MQTT Broker: Bring Your Own Cloud Explained

A BYOC MQTT broker runs in your cloud account but is operated by a provider. Learn how the model works, the responsibility split, and how to prepare your account for it.

7 min read

All articles →

Your private MQTT broker is a few clicks away

Create an account, get your broker credentials and connect your first device — no servers to install, patch or scale.