Optimizing Data Communication: Milvus Embraces NATS Messaging

Milvus 2.3 introduces NATS as an alternative message queue (MQ) for its standalone deployment mode, replacing RocksMQ. The post details how to enable and configure NATS by setting `mq.type=natsmq` and provides configuration options for NATS server port, JetStream storage directory, max payload size, and retention policies. It also outlines the migration process from RocksMQ to NATS, which involves stopping writes, flushing data, updating configuration, and cleaning up old data. Performance comparisons show NATS outperforming RocksMQ for larger data packets (> 64kb) in Pub/Sub scenarios and offering lower vector search and query latency in Milvus integration tests with a 100 million vectors dataset, while performance is similar for smaller datasets (< 100M).