milvus-io/milvus

Milvus is a high-performance, cloud-native vector database built for scalable vector ANN search

43,542 stars Go 10 components 14 connections

Distributed vector database for AI applications with multi-language client SDKs

Vector data flows from clients through Proxy to coordinators, then to worker nodes for processing and storage, with real-time streaming support

Under the hood, the system uses 4 feedback loops, 4 data pools, 5 control points to manage its runtime behavior.

Structural Verdict

A 10-component fullstack with 14 connections. 4195 files analyzed. Highly interconnected — components depend on each other heavily.

How Data Flows Through the System

Vector data flows from clients through Proxy to coordinators, then to worker nodes for processing and storage, with real-time streaming support

  1. Client Request — gRPC/HTTP requests sent to Proxy with authentication and routing
  2. Coordinator Processing — DataCoord or QueryCoord processes requests and manages worker node assignments
  3. Worker Execution — DataNode ingests and indexes data; QueryNode executes searches on loaded segments
  4. Storage Persistence — Data persisted to object storage (S3/MinIO) with metadata in etcd
  5. Message Queue Streaming — Real-time updates propagated through message queue (Pulsar/Kafka/RocksMQ)
  6. Telemetry Collection — Client metrics collected and reported to server with command push/pull capability

System Behavior

How the system actually operates at runtime — where data accumulates, what loops, what waits, and what controls what.

Data Pools

etcd MetaStore (database)
Cluster metadata, collection schemas, and coordination state
Object Storage (file-store)
Vector segments, indexes, and binary logs
Message Queues (queue)
Insert/delete messages, CDC events, and streaming updates
Local Index Cache (cache)
Loaded vector indexes and segments for search

Feedback Loops

Delays & Async Processing

Control Points

Package Structure

This monorepo contains 6 packages:

main (app)
The main Milvus vector database server with internal distributed system components and command-line tooling.
client (library)
Go client SDK for Milvus with support for vector operations, bulk import, and schema management.
pkg (shared)
Shared utilities and infrastructure components including streaming, metrics, logging, and message queue abstraction.
telemetry-demo (app)
Standalone demo showcasing Milvus telemetry features with HTTP API and WebUI integration.
telemetry-e2e-test (app)
End-to-end test application for validating Milvus telemetry command push and response flows.
tests-go-client (tooling)
Integration test suite for the Go client SDK with base utilities and response checkers.

Technology Stack

Go (framework)
Primary backend language for distributed system
gRPC (framework)
Inter-service communication protocol
etcd (database)
Distributed metadata store and coordination
Apache Pulsar (infra)
Default message queue for streaming data
MinIO/S3 (database)
Object storage for vector data and indexes
Prometheus (infra)
Metrics collection and monitoring
Protocol Buffers (library)
Schema definition and serialization
Gin (framework)
HTTP server framework for REST APIs
Casbin (library)
Access control and authorization
OpenTelemetry (library)
Distributed tracing and observability

Key Components

Sub-Modules

telemetry-demo (independence: high)
Standalone telemetry demonstration with HTTP server and WebUI
telemetry-e2e-test (independence: high)
End-to-end testing tool for telemetry command push/pull flows
go-client-tests (independence: medium)
Integration test suite for Go client SDK with utilities and response checkers

Configuration

codecov.yml (yaml)

docker-compose.yml (yaml)

tests/python_client/common/common_params.py (python-dataclass)

tests/python_client/common/common_params.py (python-dataclass)

Explore the interactive analysis

See the full architecture map, data flow, and code patterns visualization.

Analyze on CodeSea

Related Fullstack Repositories

Frequently Asked Questions

What is milvus used for?

Distributed vector database for AI applications with multi-language client SDKs milvus-io/milvus is a 10-component fullstack written in Go. Highly interconnected — components depend on each other heavily. The codebase contains 4195 files.

How is milvus architected?

milvus is organized into 5 architecture layers: Client SDKs, Proxy Layer, Coordinators, Worker Nodes, and 1 more. Highly interconnected — components depend on each other heavily. This layered structure enables tight integration between components.

How does data flow through milvus?

Data moves through 6 stages: Client Request → Coordinator Processing → Worker Execution → Storage Persistence → Message Queue Streaming → .... Vector data flows from clients through Proxy to coordinators, then to worker nodes for processing and storage, with real-time streaming support This pipeline design reflects a complex multi-stage processing system.

What technologies does milvus use?

The core stack includes Go (Primary backend language for distributed system), gRPC (Inter-service communication protocol), etcd (Distributed metadata store and coordination), Apache Pulsar (Default message queue for streaming data), MinIO/S3 (Object storage for vector data and indexes), Prometheus (Metrics collection and monitoring), and 4 more. This broad technology surface reflects a mature project with many integration points.

What system dynamics does milvus have?

milvus exhibits 4 data pools (etcd MetaStore, Object Storage), 4 feedback loops, 5 control points, 4 delays. The feedback loops handle auto-scale and scheduled-job. These runtime behaviors shape how the system responds to load, failures, and configuration changes.

What design patterns does milvus use?

5 design patterns detected: Microservices Architecture, gRPC Service Layer, Message Queue Abstraction, Object Storage Abstraction, Telemetry & Observability.

Analyzed on March 31, 2026 by CodeSea. Written by .