Message Queue Overview

Milvus relies on a message queue (write-ahead log, WAL) to manage logs of recent changes, output stream logs, and provide log subscriptions. In Milvus 3.x, Woodpecker is the default message queue and requires no separate messaging infrastructure. Pulsar, Kafka, and RocksMQ remain supported for specific scenarios.

Supported message queues

Message queueMilvus StandaloneMilvus Distributed (cluster)Default inNotes
Woodpecker✔️ (embedded)✔️ (embedded or service)Milvus 3.x (both modes)Default and recommended. Cloud-native WAL on object storage; no external service required.
Pulsar✔️✔️≤ 2.5.x (cluster default)Supported, external or bundled.
Kafka✔️✔️Supported. Only Kafka 2.x or 3.x.
RocksMQ✔️✖️≤ 2.5.x (standalone default)Supported for standalone only.
  • Each Milvus instance uses exactly one message queue.

  • Message Queue limitations: When upgrading to Milvus v3.0-beta, you must maintain your current message queue choice. Switching between different message queue systems during the upgrade is not supported. Support for changing message queue systems will be available in future versions.

  • To change the message queue of a running instance, see Switch MQ Type. The Switch MQ feature is available in Milvus 3.0 and later — upgrade to Milvus 3.0 or later first.

Choosing a message queue

  • New deployments (Milvus 3.x): use Woodpecker (the default). Standalone runs it embedded; for distributed (cluster), the recommended default is a dedicated service deployed with Helm, and embedded is also supported.
  • Existing Pulsar or Kafka users: Pulsar and Kafka remain fully supported. Keep them, or switch to Woodpecker.
  • RocksMQ: standalone only, and superseded by embedded Woodpecker in Milvus 3.x.

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Was this page helpful?