Apache Kafka vs RabbitMQ

Apache Kafka is a distributed log built for retention, replay and high-volume streams. RabbitMQ is a message broker built for routing, queues and multiple protocols. The right choice depends on what your consumers need to do with a message after it arrives.

On this page

Choose Kafka or RabbitMQ based on whether messages must be replayed

Choose Apache Kafka when messages must be replayable event streams: a log that keeps records for a retention period so new consumers, reprocessing jobs or pipelines can read the same history again. Choose RabbitMQ when the work is routing, work queues and mixed protocols, where each message is typically handled once by a consumer and the broker's job is to deliver it to the right queue. Teams building analytics pipelines, change data capture or event sourcing usually lean toward Kafka, while teams running task distribution, request and reply patterns or device messaging over MQTT and STOMP usually lean toward RabbitMQ.

The decision turns on four questions. First, do you need to replay history, and for how long? Kafka retention is configured per topic, so confirm the retention settings your use case requires against the Kafka documentation for your target version. Second, how many independent consumer groups will read the same data? Third, which protocols must your clients speak: the Kafka protocol, AMQP 0-9-1, AMQP 1.0, MQTT or STOMP? Fourth, what does your team already operate? Kafka 4.x runs only in KRaft mode and requires Java 17 for brokers, while RabbitMQ's operating model centers on queues, exchanges and quorum queues.

Illustrative example: a payments team that must reprocess the last seven days of transactions after a bug fix needs a log, while an order-fulfilment team that routes jobs to a pool of workers and discards each job after acknowledgment usually fits a broker. Write down which of your workloads need replay, then test the protocol and consumer requirements against both platforms before deciding.

Which platform fits which scenario

This table maps common workloads to the platform that usually fits better and names the condition that decides it. Read each row as a starting point: where the cell says either could work, the deciding factor is usually retention, acknowledgement behavior or the protocols your existing clients already speak.

ScenarioBetter fitReason and what decides it
Event sourcing and replayApache KafkaKafka keeps records in partitioned logs that consumers can re-read from any offset, so new consumers can rebuild state. Confirm retention settings and partition count against your replay window.
Analytics pipelines and Kafka Connect ecosystemsApache KafkaKafka Connect provides source and sink connectors for moving log data into other systems. Choose RabbitMQ only if the pipeline is already built on AMQP and its connectors are sufficient.
Task queues with per-message acknowledgementRabbitMQRabbitMQ routes messages through exchanges and queues and tracks acknowledgement per message, which suits work distribution. Kafka consumers commit offsets per partition, so per-message handling needs application logic.
IoT devices using MQTTEither, depending on the backendRabbitMQ supports MQTT 3.1, 3.1.1 and 5.0 through plugins, so devices can connect directly. If the data then feeds a high-volume analytics log, Kafka is the stronger backend. Confirm device counts and MQTT feature needs with your broker vendor or test plan.
Legacy AMQP 0-9-1 clientsRabbitMQRabbitMQ was originally built for AMQP 0-9-1, so existing producers and consumers usually connect without rewrites. Kafka does not speak AMQP, so migrating those clients means a bridge or application changes.
Java enterprise integration with JMS-style messagingEither, with a deciding questionRabbitMQ fits teams already running AMQP-based enterprise middleware. Kafka fits teams that need replay and stream processing across systems. Ask which integration patterns your Java applications already use before choosing.
Standards-based AMQP 1.0 interoperabilityRabbitMQAMQP 1.0 became a core protocol in RabbitMQ 4.0, so AMQP 1.0 clients can connect natively. Confirm client library support with your vendors because Kafka uses its own protocol.

How Kafka and RabbitMQ are built and what that means for operations

Kafka and RabbitMQ solve different problems with different internals, and those internals decide how each one is sized, stored, upgraded and recovered. The cards below follow the data path from the log or queue, through metadata and replication, to the operational routines your team would own.

Partitioned log and consumer offsets

Kafka writes each topic into partitions, and each partition is an ordered, append-only log on broker disks. Consumers track their own position as an offset, so several consumer groups can read the same records at their own pace and replay from an earlier offset. Your team must size partition counts, retention and disk per broker, and decide how consumers commit offsets. A replay job can saturate disks if retention is set longer than the storage was planned for.

KRaft-only metadata since 4.0

Apache Kafka 4.0 supports only KRaft mode, so cluster metadata lives in a Raft-based controller quorum rather than in ZooKeeper. Any cluster still on ZooKeeper must migrate to KRaft before upgrading to 4.x. Your team decides whether controllers run combined with brokers or on dedicated nodes, and it must check that the controller quorum stays healthy during rolling upgrades. Confirm the migration path for older clusters with your Kafka distribution before you schedule an upgrade window.

Exchanges, queues and routing

RabbitMQ accepts messages at exchanges, which route them to queues by binding rules. Consumers acknowledge each message, and the broker removes it once acknowledged, so the queue holds work in progress rather than a long history. Routing topology, dead-letter settings and acknowledgment behavior become the main design artifacts your team reviews. Broker sizing depends more on message rate, queue depth and memory alarms than on total retained data, which changes how you plan capacity.

Quorum queues and streams on Raft

RabbitMQ's replicated data types are quorum queues and streams. Quorum queues are durable, replicated queues based on the Raft consensus algorithm, and streams provide append-only, replayable logs for high-throughput consumers. Both need an odd number of replicas to keep a majority, so your team plans replica counts and node placement across failure domains. Check how each queue type handles leader election and disk pressure before choosing a default for production queues.

Classic mirroring removed in 4.0

Classic queue mirroring was removed starting with RabbitMQ 4.0, so any workload still relying on mirrored classic queues must move to quorum queues or streams before upgrading. This is a migration project, not a configuration tweak, because queue types, client behavior and failover characteristics differ. Inventory every mirrored queue, test consumer behavior against the new type, and plan the cutover in a non-production environment first. Confirm the replacement with your application owners before you touch production.

Upgrade and support windows

Kafka's time-based plan aims for three feature releases a year and supports rolling upgrades from each release in the past year to the latest version, so routine upgrades stay on a predictable cadence. RabbitMQ's 4.2 community support ended on July 31, 2026, and commercial support beyond community dates requires a valid commercial support license. Your team should map each platform's current support window against its change calendar, then decide who owns patching, testing and rollback for the broker and its controllers.

Why retention and replay change the design of consumers

Kafka keeps records for a retention period and lets each consumer group track its own position with offsets, so a second team can read the same events later without affecting the first. RabbitMQ works the other way: once a consumer acknowledges a message from a queue, the broker removes it, and routing decisions live in exchanges and bindings rather than in the stored data. For consumer design, this means a Kafka consumer must be able to rewind, while a RabbitMQ consumer usually assumes each message is handled once and then gone. Neither default is better. Choose Kafka when new consumers need history, and RabbitMQ when work items should be claimed, processed and cleared.

Reprocessing and backfills are where the difference is most visible. In Kafka, a bug fix or a new downstream service can reset a consumer group's offsets and read the topic again, provided retention still covers the period you need, so confirm the topic retention settings before you promise a replay window. In RabbitMQ, replay requires a stream or a separate copy of the data, because a classic message is not kept after acknowledgment. Either way, the consumer must be idempotent: a repeated record should produce the same result as the first. Plan a deduplication key, such as an event ID stored with the result, for both platforms.

Dead-letter handling also changes shape. RabbitMQ routes rejected or expired messages to a dead-letter exchange, which gives operators a queue of failed work to inspect and requeue, a model that suits task processing and payment-style workflows. Kafka has no built-in dead-letter queue for consumer logic, so teams usually publish failed records to a separate topic and keep the original offset moving. Test how each approach handles poison messages and how far back a fix can rewind before you commit to one design.

Protocols, replication and security compared side by side

This table compares Apache Kafka and RabbitMQ on the protocol, replication, authentication, authorization, licensing and support questions that usually decide a shortlist. Read each row as a fit question: where a platform's facts are supplied, the cell states them, and where they are not, the cell names what to confirm with the vendor or in your own test environment.

CapabilityApache KafkaRabbitMQ
Core protocolKafka protocol, a binary protocol used by Kafka clients to publish to and fetch from partitioned logsOriginally developed for AMQP 0-9-1, with AMQP 1.0 as a core protocol since RabbitMQ 4.0
AMQP 0-9-1 and AMQP 1.0Not supported natively; bridging needs a separate connector or gateway that you must build, test and runAMQP 0-9-1 is the original protocol; AMQP 1.0 is a core protocol since 4.0
MQTTNot a native Kafka protocol; device traffic usually reaches Kafka through a separate MQTT broker or bridgeMQTT 3.1, 3.1.1 and 5.0 supported through plugins
STOMPNot a native Kafka protocolAll current STOMP versions supported through plugins, plus WebSocket variants
Streams and replayPartitioned logs with retention and consumer-managed offsets, built for replayQuorum queues and RabbitMQ Streams for high-throughput stream access; confirm replay behavior for your workload
Replication mechanismReplication across brokers; KRaft metadata quorum replaces ZooKeeper from Kafka 4.0Quorum queues are durable, replicated queues based on Raft; classic queue mirroring was removed in RabbitMQ 4.0
Authentication optionsSSL or SASL: GSSAPI (Kerberos), PLAIN, SCRAM-SHA-256, SCRAM-SHA-512 and OAUTHBEARER; security is optional per listenerConfirm mechanisms, TLS settings and identity integrations against the RabbitMQ documentation for your release
Authorization modelStandardAuthorizer stores ACLs in the metadata log; resources without ACLs are restricted to super users unless allow.everyone.if.no.acl.found is trueConfirm permission model, virtual hosts and topic permissions with the vendor documentation
LicenseApache-2.0 with no paid edition from the Apache project itselfMPL 2.0 for server and tier 1 core plugins, with some OCF files under Apache 2.0
Current supported versions and dates4.3.1 (June 25, 2026), 4.2.2 (September 29, 2026), 4.1.2 (March 17, 2026)4.3.6 released September 16, 2026, community support until January 31, 2027; 4.2 community support ended July 31, 2026

What the licenses and support windows actually cost you

Apache Kafka is licensed under the Apache License 2.0 (SPDX: Apache-2.0), and the project itself offers no paid edition. Software cost is therefore zero, and the recurring costs come from the infrastructure you run, the people who operate it and any third-party company you hire for support. The project maintains three supported releases at a time: 4.3.1 (June 25, 2026), 4.2.2 (September 29, 2026) and 4.1.2 (March 17, 2026). The project aims for three releases a year, one every four months, and issues bugfix releases only for supported lines, so keeping current is a continuing task rather than a one-off upgrade.

  • No license fee: The Apache-2.0 license carries no per-core or per-node charge from the project.
  • Upgrade cadence: Rolling upgrades are supported from each release in the past year (the last three releases) to the latest version, so a cluster that falls behind may need a multi-step path.
  • Java requirement: Since Kafka 4.0, brokers, Kafka Connect and tools require Java 17, which is an internal planning item even though it has no license cost.
  • Support is external: Any paid help comes from a vendor or consultancy under its own contract, not from the Apache project.

Before you commit, confirm which Kafka release line your chosen vendor supports and how long they commit to patching it.

Where the operating effort lands in each platform

The heaviest recurring effort in Kafka is the upgrade path, and it is set by version history rather than by daily load. Apache Kafka 4.0 supports only KRaft mode and removed ZooKeeper mode, so any cluster still on ZooKeeper must migrate to KRaft before it moves to 4.x. The upgrade notes also recommend that KRaft clusters older than 3.3.x first move to 3.9.x. Rolling upgrades are supported from each release in the past year, which means a cluster that falls behind the last three releases needs staged hops rather than one jump. Brokers, Kafka Connect and tools require Java 17, so JVM runtimes on every node and every Connect worker must be checked before the broker binaries change. Confirm the current supported line on the Apache Kafka downloads page before scheduling any hop.

RabbitMQ's effort concentrates around the 4.0 changes. AMQP 1.0 became a core protocol in RabbitMQ 4.0, and classic queue mirroring was removed from that release, so any HA policy that depended on mirrored classic queues must be redesigned around quorum queues or streams before the upgrade. Teams should inventory every queue, its type and its client libraries, then decide per workload between quorum queues, which use Raft-based replication, and streams, which suit high-throughput replay. Community support windows also drive the calendar: confirm the current end-of-support date for your running minor on the RabbitMQ release information page, and confirm the commercial lifecycle with the vendor if you need support beyond it.

Both platforms need in-house skills for the same core work: partition or queue sizing, consumer lag alerting, broker metrics pipelines, and tested restores. For Kafka, lag per consumer group, under-replicated partitions and controller health are the first signals to wire into monitoring. Partition count is hard to reduce later, so plan it against expected consumer parallelism. For RabbitMQ, watch queue depth, unacknowledged messages and the health of each quorum queue's leader and replicas. A DeployOpen implementation scope would typically cover the upgrade plan and rehearsal, monitoring and alert design, queue or topic standards, hardening and backup procedures, and runbooks handed to your team. Agree the scope, deliverables and timeline in writing and ask for the effort breakdown in the quote.

What drives the running cost of each platform

Running cost for either platform is mostly people, storage and upgrade work, not license fees, because both projects are open source. The cards below separate what you pay for once from what recurs, and who in your organization or in a vendor's team is paid for each item.

Infrastructure footprint and storage

Kafka keeps every retained record on broker disks for the configured retention period, so disk capacity grows with throughput multiplied by retention and replication factor. RabbitMQ holds queue contents in memory and on disk while consumers are behind, and quorum queues and streams replicate across nodes, so its footprint depends on backlog depth and consumer lag. Your cloud or data center bill is recurring and scales with these settings. Ask your team to model peak backlog and retention against your own traffic before comparing node counts.

Skills to operate the cluster

Kafka operations center on partition planning, consumer group lag, KRaft controller health and client configuration, while RabbitMQ operations center on queue types, policies, memory alarms and flow control. Your internal staff or a services firm are paid for this time, and it recurs every day as on-call work. Check whether your team already runs one of these systems and whether training or a vendor-supported runbook is part of the scope you agree in writing.

Security setup and certificates

Kafka supports SSL and SASL mechanisms including SCRAM and OAUTHBEARER, and its StandardAuthorizer stores ACLs in the cluster metadata log, so access rules must be designed and reviewed. RabbitMQ requires its own TLS, user and permission configuration, plus certificate rotation for each protocol listener you expose. Initial design is largely one-time work, but certificate renewal and access reviews recur. Ask who issues and rotates certificates and how identity integration is built into each platform.

Upgrade effort and version support

Kafka 4.0 removed ZooKeeper, so any older ZooKeeper-based cluster needs a KRaft migration before it can move to 4.x. Rolling upgrades are supported from the last three releases to the latest version. RabbitMQ community support windows end on fixed dates, and extended support beyond them requires a commercial license. Each upgrade cycle is recurring labor for your team or a services provider, and the cost rises when you fall behind on supported versions. Confirm the support window you plan to run before you commit.

Support contracts and lifecycle coverage

Apache Kafka has no paid edition from the project itself, so any vendor support is a separate contract with a third party. RabbitMQ community support is free, but commercial support is sold through Broadcom, and its lifecycle details are on the vendor's support portal. This is a recurring cost that you choose to buy or not. Ask for written response targets, the named versions covered and the end date of each support term before comparing totals.

Client rewrites and migration

Moving a service from RabbitMQ queues to Kafka topics usually means rewriting producers and consumers, changing delivery and acknowledgement logic, and rebuilding dead-letter handling. Kafka's consumer offsets and replay model also change how teams reason about failures. This is one-time engineering effort, but it is often the largest item in a switch. Ask for an inventory of client libraries, protocols and consumer patterns in use before estimating the migration.

How to move from RabbitMQ to Kafka, or back, without a big-bang cutover

This sequence moves one flow at a time between RabbitMQ and Kafka, so each producer, consumer and replay requirement is proven on the new platform before the old path is removed. The result is a dated record of which flows changed, what was verified, and what can be retired.

  1. Inventory producers, consumers and their protocols

    The platform team, with the owners of each application, lists every publisher and subscriber, the queue or exchange it uses, the protocol on the wire (AMQP 0-9-1, AMQP 1.0, MQTT, STOMP or the Kafka protocol), message volume, ordering needs and acknowledgement behavior. Include clients that reach RabbitMQ through plugins or WebSocket, since these are easy to miss. The step is done when every flow has one row in a shared inventory and each owner has signed off on it. Ask each owner which clients they cannot change, because those determine whether a bridge is needed.

  2. Decide which flows need replay

    Classify each flow by whether consumers must re-read past messages, rebuild state from history, or add new consumers later without republishing. Flows that need replay are strong candidates for Kafka's retained log. Flows that are task dispatch, with work consumed once and discarded, often stay on RabbitMQ, where routing and per-message acknowledgement are simpler to reason about. The step is done when each flow carries a written decision with a named owner and a retention requirement, and the decision has been reviewed against the Kafka retention settings your team will use.

  3. Build the schema and contract baseline

    Before any traffic moves, capture the message schemas, field meanings, versioning rules and error handling that consumers depend on. This is the part that transfers between platforms, because business logic and payload definitions live in the applications and in your schema registry, not in the broker. Record which routing keys or headers carry business meaning, since those must be mapped to Kafka topics or keys explicitly. The step is done when every flow has a versioned contract file that both the RabbitMQ and Kafka paths can be tested against.

  4. Run dual publishing or a bridge for a bounded period

    For each selected flow, the producer either publishes to both brokers or a bridge component copies messages from RabbitMQ to Kafka (or the reverse) while the original path stays live. The team sets the bridge's delivery semantics explicitly, because a copy step can create duplicates or reorder messages. Run the overlap long enough to compare counts, lag, dead-letter volumes and payload checksums across both paths. The step is done when reconciliation reports show no unexplained differences for an agreed observation window, and that window is written down before the overlap begins.

  5. Migrate consumers with idempotency checks

    Move one consumer group at a time to read from Kafka. Each consumer must tolerate redelivery, because a bridge or a retry after a failed offset commit can deliver the same event more than once. Add a deduplication key (such as a business event ID) and store processed IDs or make writes idempotent. Acknowledgement semantics change here: RabbitMQ acknowledges individual messages, while Kafka consumers commit offsets for a position in a partition, so the team retests poison-message handling and retry logic. The step is done when each migrated consumer passes duplicate-injection and out-of-order tests in a non-production environment.

  6. Rebuild routing and client configuration

    RabbitMQ exchanges, bindings and queue policies do not carry over as configuration. Their intent is rebuilt as Kafka topics, partition keys, consumer group assignments and, where needed, filtering logic in the consuming service. Client libraries are replaced or upgraded to Kafka clients, and authentication moves to the Kafka mechanisms your environment supports (for example SSL, or SASL mechanisms such as SCRAM). Confirm the required Kafka authorization model (ACLs in the cluster metadata) before consumers go live. The step is done when a topology diagram matches the running configuration and each client connects with its own least-privilege identity.

  7. Retire the old queues in stages

    Once a flow's consumers read only from the new platform and the observation window has closed without incident, stop publishing to the RabbitMQ queue, let it drain, then delete the queue and its bindings. Keep the RabbitMQ definitions export and the bridge configuration for a rollback period agreed in advance. Archive the reconciliation reports and the contract baseline with the change record. The step is done when the old queue is removed, the rollback path has been tested or formally waived, and the flow's inventory row is marked as migrated with the date and approver recorded. Reverse the sequence for any flow that moves from Kafka back to RabbitMQ.

Where Kafka and RabbitMQ projects usually run long

The longest delays in a Kafka or RabbitMQ project rarely come from installing the broker. They come from decisions made late: the schema and contract for each topic or queue, how consumers stay idempotent when a message is redelivered, and who owns the event definitions after go-live. Kafka teams should settle a schema registry and compatibility rules before producers multiply. RabbitMQ teams should agree on message contracts, dead-letter handling and retry behavior per queue. Confirm these owners and rules in writing before the statement of work is signed, because each unresolved item tends to reopen integration testing.

Security and identity integration is the next common source of slippage. On Kafka, the SASL mechanisms in the security overview (GSSAPI, PLAIN, SCRAM-SHA-256, SCRAM-SHA-512 and OAUTHBEARER) need to be matched to your directory and token issuer, and KRaft clusters restrict resources without ACLs to super users unless allow.everyone.if.no.acl.found is set. On RabbitMQ, users, vhosts and per-vhost permissions must map to your teams and applications. Capacity testing and disaster recovery drills also tend to run past plan. Ask your team to supply target message rates, retention needs, expected consumer lag, and recovery time and point objectives, plus access to a non-production environment that resembles production. DeployOpen plans and documents these items in a fixed-scope engagement, implements and hardens the configuration, and runs the agreed tests, with the written scope setting what is included. Your team provides the identity sources, environments, subject matter owners and decisions on the design points above.

Questions buyers ask before choosing Kafka or RabbitMQ

What drives the total cost of running Kafka or RabbitMQ?

Neither project charges a license fee for the server software, so the cost sits in infrastructure, staff time and any support you buy. Apache Kafka is licensed under Apache-2.0 and the project offers no paid edition of its own. RabbitMQ server and its tier 1 core plugins are licensed under MPL 2.0. Recurring costs include broker and controller nodes, storage, monitoring, patching and on-call time. Kafka storage grows with the retention period you configure, while RabbitMQ queues hold messages until consumers acknowledge them, so message volume, retention and replication settings drive the infrastructure bill for each platform. One-time costs include design, integration and migration. When you request a quote, specify node counts, storage, replication, upgrade cadence and whether you want commercial support, because each of those changes who is paid for what.

How long does a migration between Kafka and RabbitMQ take?

The platforms do not set a fixed duration, so the pace comes from your own service inventory. The main drivers are the number of producers and consumers, and whether each consumer depends on queue behavior such as per-message acknowledgment, dead-lettering and routing, or on replaying events from a stored log position. Those two patterns require different rebuild work. The client protocols each service uses, schema contracts, ordering requirements and the length of any dual-run period also set the pace. DeployOpen's engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts, so the timeline follows from a written inventory and cutover plan. Ask any implementation partner for a plan that lists each service, its protocol, its delivery expectations and the rollback step for each cutover.

Can our team run Kafka or RabbitMQ without outside help?

Many teams can run either platform in-house if they already operate distributed systems, but the upgrade path and security setup need checking first. Apache Kafka 4.0 supports only KRaft mode, so ZooKeeper-based clusters must migrate to KRaft before upgrading to 4.x, and the upgrade notes recommend moving KRaft clusters older than 3.3.x to 3.9.x first. Rolling upgrades are supported from each of the last three releases to the latest. RabbitMQ 4.0 removed classic queue mirroring, so older high-availability designs need rework before you upgrade. If your team lacks this experience, DeployOpen plans, implements, hardens, backs up, upgrades and documents self-hosted platforms inside your own infrastructure, and ongoing support, upgrades and testing are available as retainers. Start with a written assessment of your current estate so the skill gaps are confirmed before you choose.

What skills and staff time does each platform need?

Kafka requires ownership of a KRaft controller quorum, partition and topic design, Java 17 runtimes on brokers and Connect, and an authorization model. In KRaft clusters, the StandardAuthorizer stores ACLs in the metadata log, and resources without ACLs are restricted to super users unless allow.everyone.if.no.acl.found is set to true, so access rules must be planned before go-live. Kafka also needs deliberate choices among SSL and SASL mechanisms, including GSSAPI, PLAIN, SCRAM-SHA-256, SCRAM-SHA-512 and OAUTHBEARER. RabbitMQ requires a choice between quorum queues, which are replicated with the Raft consensus algorithm, and streams, plus decisions about plugins for MQTT, STOMP and WebSocket access. AMQP 1.0 became a core protocol in RabbitMQ 4.0. If you run on Kubernetes, the RabbitMQ Cluster Kubernetes Operator is published under MPL-2.0. Both platforms need monitoring and on-call coverage, and your staff should match each platform's operating model before you commit.

Can we run Kafka and RabbitMQ side by side?

Yes, and many teams do, but running both doubles the components you patch, monitor, secure and back up. Use Kafka where you need a retained log that consumers can replay, and RabbitMQ where you need routing, per-message acknowledgment, or the AMQP 0-9-1, MQTT or STOMP clients you already run. Define ownership per message type before you start, so each team knows which platform carries its events and tasks. Moving data between the two requires a bridge. Kafka Connect streams data between Kafka and other systems through source and sink connectors, but you should confirm whether a maintained connector fits your RabbitMQ version and delivery requirements, or whether a custom bridge is needed. Ask for a written runbook covering both platforms, including the upgrade order, so a change to one platform does not create unplanned work in the other.

How do licenses differ for production use?

Both platforms are open source and both permit production use of the core server without a paid edition, but their terms differ in what they require from you. Apache Kafka is licensed under Apache-2.0, a permissive license, and the project itself offers no paid edition. RabbitMQ server and its tier 1 core plugins are licensed under MPL 2.0, a file-level copyleft license, so changes you make to MPL-covered files must be made available when you distribute them. Some RabbitMQ OCF files are under Apache 2.0. Commercial support is a separate matter: long-term support beyond community dates requires a valid commercial support license, and the lifecycle details sit on the Broadcom support portal. Confirm with your legal team how distribution, modification and bundled components affect your product, and treat the license texts as the authority.

How should we evaluate support windows for each platform?

Treat support windows as dated commitments and compare them with your own upgrade calendar. The Apache Kafka project aims for three releases a year, roughly one every four months, and makes bugfix releases only for supported releases. The downloads page lists 4.3.1 (June 25, 2026), 4.2.2 (September 29, 2026) and 4.1.2 (March 17, 2026) as supported. For RabbitMQ, 4.3.6 was released on September 16, 2026 with community support until January 31, 2027, and 4.2 community support ended on July 31, 2026. Support beyond community dates requires a commercial license; for example, commercial support for 4.2 runs to June 30, 2030. Ask each vendor which version you would deploy, its end-of-support date, which security fixes follow, and who provides them after the community window closes. The RabbitMQ release information is the natural starting point for that check.

How DeployOpen helps teams choose and implement either platform

DeployOpen plans, implements, integrates, hardens and documents self-hosted open-source platforms inside your own cloud accounts, data centers or air-gapped networks. For Apache Kafka vs RabbitMQ, we help you match the messaging model to your workloads, then build and hand over whichever platform you choose.

How we scope

  • We start with your workloads: event replay needs, queue routing, protocol clients and throughput expectations.
  • Scope, deliverables and timelines are agreed in writing before any work starts, in a fixed-scope engagement.
  • The written scope names the protocols, clients, replication layout and support model that apply to your environment.

How we build

  • We deploy Kafka or RabbitMQ in your infrastructure, configuring KRaft or quorum queue and stream replication as scoped.
  • We set up authentication, TLS and authorization, including SASL mechanisms or RabbitMQ access controls, as agreed.
  • We test failover, topic or queue behavior and client connectivity before anything goes live.

How we hand over

  • Deliverables include architecture, configuration and runbook documentation for your operations team.
  • We prepare upgrade and backup procedures so your team can follow the version path for the platform you run.
  • We document the controls and evidence your compliance assessors will ask for, without issuing any audit opinion.

How we support

  • Ongoing support, upgrades and continuous testing are available as a retainer after handover.
  • Retainers can cover version upgrades, patching and configuration changes as your platform and release calendar evolve.
  • Ask us to confirm lifecycle dates and support windows in writing for the versions you deploy.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.