NEW live workshops: Leaving TIBCO or Solace for NATS Adding an enterprise backbone above MQTT Active/active multi-cloud architectures

Migration Guide · Solace to NATS

Migrating from Solaceto NATS

A practical, engineering-first look at replacing Solace PubSub+ with NATS — what maps cleanly, what does not, and the order in which to do the work so nothing breaks in production.

Read the summary

Executive Summary

Moving off Solace is worth doing only if you don't carry its problems with you. This guide is a practical, engineering-first look at replacing Solace PubSub+ with NATS — what maps cleanly, what does not, and the order in which to do the work so nothing breaks in production.

Most of the move is a mapping exercise: publish/subscribe, request/reply, durable delivery, and topic hierarchies all have direct NATS equivalents. The real work sits in a short, predictable list — message VPNs, JMS transactions, selectors, and DMR — and a five-step path with an exit criterion at every step keeps it contained.

01

Why teams look

Three Things Start This Conversation

Teams rarely leave Solace because something broke. They leave because the platform has become more expensive and more complicated than the workload it carries.

  • 01

    The bill keeps climbing

    Broker appliances, per-connection licensing, and separate DR environments turn a messaging layer into a line item nobody can defend at renewal.

  • 02

    Operations feel heavier than the workload

    Every new region, tenant, or team means more configuration, more coordination, and more people who need to understand a bespoke topology.

  • 03

    The edges do not reach

    Getting Solace to span cloud, on-prem, and edge reliably means gateways and bridges that were never really designed for it.

02

The ceiling

Where Solace Runs Out

None of these are bugs. They are the shape of a broker-centric platform — and the reason a subject-based mesh looks different.

Scaling is a procurement event
Throughput and connection ceilings are tied to broker tiers. Growing past them means resizing appliances or buying capacity ahead of demand.
Geo-distribution is bolted on
Multi-site delivery relies on DMR and bridging config that must be reasoned about per link, rather than a mesh that any node can join.
Tenancy leans on topology
Isolation between teams and environments is enforced through VPNs, ACL profiles, and separate message-VPNs that grow harder to audit over time.
The client story is narrow
You standardize on a handful of SDKs and the wire protocols Solace supports, which shapes how far messaging can reach into new services.

03

The machine count

One Server Instead of a Stack

NATS collapses the broker, the router, and the gateway into one small server. Any node can join a cluster, any cluster can join a super-cluster, and subjects route messages across the whole fabric without a central point to size or license.

1
binary to run a full mesh — broker, router, and gateway in one server.
~10MB
server memory footprint, small enough to run at the edge.
40+
client languages, so messaging reaches every service you run.

The topology becomes software you deploy, not hardware you provision. The same three regions that need an HA group per vertex on Solace need one server per vertex on NATS.

Fig 1. Same three regions, same routing — 9 machines on NATS vs 27 on Solace to serve identical traffic.

04

An honest inventory

What Carries Over, and What Needs Real Work

Most of a Solace estate maps onto NATS concept for concept. The rest is a short list — and it is where to budget your engineering time.

Carries over

  • Publish/subscribe and request/reply semantics map directly onto NATS subjects.
  • Durable, at-least-once delivery is covered by JetStream streams and consumers.
  • Topic hierarchies translate to subject tokens with cleaner wildcard matching.
  • Queue groups replace Solace consumer groups for competing consumers.
  • TLS, auth, and per-subject authorization stay first-class, not add-ons.

Needs real work

  • Solace-specific features like message VPNs need re-modeling as accounts.
  • XA/JMS transaction flows require rethinking around JetStream acknowledgements.
  • Selectors and complex content filters move into consumer filter subjects.
  • Bridge and DMR configuration is replaced by cluster and gateway topology.
  • Client code migrates off the JMS/SMF SDKs onto native NATS clients.

Straight talk

What we will not pretend

A migration is not a config toggle. If your systems depend on JMS transaction semantics, Solace-specific management tooling, or years of message-VPN conventions, moving to NATS is real engineering work with a real timeline. The payoff is a simpler operational model and a lower run rate — not a free lunch. We would rather set that expectation now than surprise you in week three.

05

The path

A Five-Step Migration

Each step has an exit criterion. You do not start the next one until the current one is provably done.

  1. 01

    Map the topics and flows

    Catalog every topic, queue, and client, then draw the subject hierarchy and account boundaries they translate to in NATS.

    Exit · A subject map reviewed and signed off by each owning team.

  2. 02

    Stand up a NATS cluster beside Solace

    Deploy a NATS cluster with JetStream enabled in the same networks, mirroring auth and TLS posture without touching production traffic.

    Exit · Cluster passes health, failover, and auth tests in staging.

  3. 03

    Bridge and shadow traffic

    Run a bridge that mirrors live Solace subjects onto NATS so you can validate delivery, ordering, and throughput against real load.

    Exit · Shadowed streams match Solace on volume and latency budgets.

  4. 04

    Migrate producers and consumers by domain

    Cut over one bounded context at a time — consumers first, then producers — keeping the bridge in place as a safety net.

    Exit · Each domain runs fully on NATS with rollback still available.

  5. 05

    Decommission Solace

    Once every domain is stable on NATS and the bridge is idle, remove the bridge, retire the brokers, and reclaim the licensing.

    Exit · Solace appliances powered down and contract wound down.

06

The guide

Get the Migration Guide

An engineering guide, not a brochure — the mapping tables, phase plan, and cost model behind every step above.

Inside the guide

  • A side-by-side capability comparison of Solace and NATS
  • Client API, JMS, queue-semantics, and security-model mappings
  • A five-phase migration plan with exit criteria for every phase
  • A three-year TCO model and a customer intake questionnaire
Author
Synadia
Version
V 1.0, 2026
Format
PDF

07

Common questions

Frequently Asked Questions

Direct answers to the questions teams ask most often when planning a move from Solace PubSub+ to NATS.

Is NATS a good alternative to Solace PubSub+?

NATS is a strong alternative to Solace PubSub+ for teams that want a simpler operational model and a lower run rate. It covers the core Solace patterns — publish/subscribe, request/reply, competing consumers, and durable at-least-once delivery through JetStream — in a single lightweight server. Clusters and super-clusters form a mesh that spans cloud, on-premises, and edge without appliances, DMR links, or per-connection licensing.

How long does a Solace to NATS migration take?

A Solace to NATS migration runs in five gated steps: map topics and flows, stand up a NATS cluster beside Solace, bridge and shadow live traffic, migrate producers and consumers one domain at a time, then decommission Solace. The timeline depends mostly on how much of the estate relies on JMS transactions, selectors, and message-VPN conventions, since those need re-modeling rather than a direct mapping.

How do Solace topics map to NATS subjects?

Solace topic hierarchies translate directly into NATS subjects, which are dot-delimited tokens such as orders.emea.created. NATS wildcards match a single token with * and any number of trailing tokens with >, so existing topic subscriptions usually carry over as a mechanical rewrite. The subject map produced in the first migration step becomes the contract every team migrates against.

What replaces Solace message VPNs in NATS?

NATS accounts replace Solace message VPNs as the unit of multi-tenant isolation. Each account has its own subject namespace, and subjects are shared between accounts only through explicit exports and imports. Per-user permissions then restrict which subjects a client can publish or subscribe to, which keeps tenancy auditable in configuration rather than spread across VPNs and ACL profiles.

Can Solace and NATS run side by side during a migration?

Yes. The recommended Solace to NATS migration path runs a NATS cluster beside Solace and bridges live Solace traffic onto NATS subjects, so delivery, ordering, and throughput can be validated against real load before any cutover. Domains then move one at a time — consumers first, then producers — with the bridge kept in place as a rollback path until Solace is decommissioned.

What happens to JMS transactions and selectors when moving to NATS?

JMS and XA transaction flows need to be redesigned around JetStream acknowledgements, which provide at-least-once delivery with explicit acks and redelivery rather than distributed transactions. Solace selectors and content filters move into JetStream consumer filter subjects, which works best when the filtered attribute is encoded as a subject token. These are the parts of a Solace migration that need real engineering time.

How does NATS replace Solace DMR for multi-site delivery?

NATS replaces Solace Dynamic Message Routing (DMR) and bridge configuration with cluster and gateway topology. Servers in a region form a cluster, and clusters connect through gateways into a super-cluster, so subjects route across every site automatically. There is no per-link bridge configuration to reason about — adding a region means adding gateway destinations.
Get the NATS Newsletter

News and content from across the community


Cancel