# vitessio/vitess

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/vitessio-vitess).**

20,788 stars · 2,302 forks · Go · apache-2.0

## Links

- GitHub: https://github.com/vitessio/vitess
- Homepage: http://vitess.io
- awesome-repositories: https://awesome-repositories.com/repository/vitessio-vitess.md

## Topics

`cncf` `database-cluster` `kubernetes` `mysql` `shard` `vitess`

## Description

Vitess is a database clustering system for horizontal scaling of MySQL. It functions as a middleware layer that abstracts complex sharding and physical topology, allowing applications to interact with a distributed database environment through a unified interface. By intercepting and routing SQL queries across multiple shards, it enables large-scale data management while maintaining the appearance of a single database instance.

The platform distinguishes itself through its ability to perform online schema migrations and distributed transaction coordination without requiring application downtime. It automates the lifecycle of database nodes, including health monitoring, automated failover, and the propagation of structural changes across shards. These capabilities are managed through a declarative registry that ensures consistency across the cluster, even as data is rebalanced or migrated between instances.

Beyond its core routing and sharding functions, the system provides a comprehensive suite of operational tools for managing distributed environments. This includes automated backup and recovery, read load balancing, and traffic management features such as request buffering and throttling. It also offers deep observability into cluster health and query performance, alongside role-based access control to secure administrative operations.

The project is designed for deployment within containerized environments, utilizing orchestration tools to manage node lifecycles and cluster state. It supports development workflows by allowing the entire clustering stack to run within a single container for integration testing.

## Tags

### Data & Databases

- [Database Sharding](https://awesome-repositories.com/f/data-databases/database-sharding.md) — Distributes data across multiple nodes using keyspace definitions and routing rules to enable horizontal scaling of large-scale database workloads. ([source](https://vitess.io/docs/))
- [Data Access & Abstraction](https://awesome-repositories.com/f/data-databases/data-access-querying/data-access-abstraction.md) — Provides a unified interface that abstracts complex sharding and physical topology, allowing applications to interact with a distributed database as a single instance. ([source](https://vitess.io/docs/24.0/overview/))
- [Database Schema Migrations](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/database-management/database-schema-migrations.md) — Applies structural changes to database tables across shards without requiring downtime by managing the migration process through automated, background workflows. ([source](https://vitess.io/docs/archive/19.0/))
- [Database Sharding Solutions](https://awesome-repositories.com/f/data-databases/database-sharding-solutions.md) — Provides a database clustering solution that transparently shards MySQL instances to provide horizontal scaling and high availability.
- [Disaster Recovery Solutions](https://awesome-repositories.com/f/data-databases/disaster-recovery-solutions.md) — Automates consistent backups, point-in-time recovery, and primary failover processes to ensure data durability and continuous service availability.
- [Distributed Query Processing](https://awesome-repositories.com/f/data-databases/distributed-query-processing.md) — Directs incoming SQL requests to the correct database shards and aggregates results to hide complex topology from the application.
- [Distributed Transaction Processing](https://awesome-repositories.com/f/data-databases/distributed-transaction-processing.md) — Coordinates multi-shard operations and handles rollbacks for partial failures to ensure data consistency across a distributed database environment. ([source](https://vitess.io/docs/23.0/reference/))
- [Query Abstraction Layers](https://awesome-repositories.com/f/data-databases/query-abstraction-layers.md) — Intercepts and parses incoming SQL queries to route them across distributed shards while abstracting the underlying physical topology.
- [Distributed Query Routers](https://awesome-repositories.com/f/data-databases/query-middleware/distributed-query-routers.md) — Acts as a middleware layer that directs SQL queries to the correct database shards and aggregates results.
- [Schema Migration Tools](https://awesome-repositories.com/f/data-databases/schema-migration-tools.md) — Executes structural database changes on live production tables without locking or requiring application downtime.
- [Backup and Recovery](https://awesome-repositories.com/f/data-databases/backup-and-recovery.md) — Automates the creation and restoration of consistent database snapshots to ensure data durability and disaster recovery readiness. ([source](https://vitess.io/docs/24.0/))
- [Cluster Topology Management](https://awesome-repositories.com/f/data-databases/cluster-topology-management.md) — Coordinates cluster state and metadata across multiple nodes using external consensus services to ensure consistent configuration. ([source](https://vitess.io/docs/24.0/get-started/))
- [Data Migration](https://awesome-repositories.com/f/data-databases/data-integration-synchronization/data-migration.md) — Moves tables or data subsets between database instances online to facilitate infrastructure transitions without requiring application downtime. ([source](https://vitess.io/docs/design-docs/vreplication/))
- [Data Replication](https://awesome-repositories.com/f/data-databases/data-replication.md) — Coordinates data synchronization across distributed database nodes to ensure consistency and high availability within a clustered environment. ([source](https://vitess.io/docs/archive/12.0/))
- [Primary-Replica Replication](https://awesome-repositories.com/f/data-databases/primary-replica-replication.md) — Captures and propagates transaction logs between primary and replica nodes to maintain data availability and support online migrations.
- [Change Data Capture](https://awesome-repositories.com/f/data-databases/change-data-capture.md) — Captures and propagates data modifications from the primary database to replicas or external systems in real-time to support event-driven architectures. ([source](https://vitess.io/docs/23.0/concepts/))
- [Distributed Consensus Stores](https://awesome-repositories.com/f/data-databases/distributed-consensus-stores.md) — Maintains a single source of truth for cluster metadata, shard mapping, and node health using an external distributed store.
- [Query Performance Monitors](https://awesome-repositories.com/f/data-databases/query-performance-monitors.md) — Inspects SQL execution plans and statement behavior to optimize database performance and identify bottlenecks in distributed environments. ([source](https://vitess.io/docs/23.0/user-guides/))
- [Read Replicas](https://awesome-repositories.com/f/data-databases/read-replicas.md) — Distributes incoming read traffic across available replicas to optimize resource utilization and improve performance. ([source](https://vitess.io/docs/23.0/user-guides/))
- [Cluster Node Management](https://awesome-repositories.com/f/data-databases/cluster-node-management.md) — Wraps individual database instances with a sidecar process to handle health monitoring, query execution, and lifecycle state transitions.
- [Data Buffering](https://awesome-repositories.com/f/data-databases/data-buffering.md) — Queues incoming queries during transient cluster instability or topology changes to prevent application errors and maintain service continuity. ([source](https://vitess.io/docs/24.0/reference/))
- [Data Schema Definitions](https://awesome-repositories.com/f/data-databases/data-schema-definitions.md) — Maps application-level data structures to physical database shards to help the system understand how to partition and route data effectively. ([source](https://vitess.io/docs/23.0/concepts/))
- [Query Optimization Patterns](https://awesome-repositories.com/f/data-databases/query-optimization-patterns.md) — Refines routing strategies for data joins and manipulation operations to improve overall speed and efficiency when processing large datasets. ([source](https://vitess.io/docs/design-docs/query-serving/))
- [Foreign Key Constraints](https://awesome-repositories.com/f/data-databases/foreign-key-constraints.md) — Maintains relational integrity across distributed database nodes by managing and validating foreign key relationships within the sharding architecture. ([source](https://vitess.io/docs/design-docs/query-serving/))

### DevOps & Infrastructure

- [Database Cluster Orchestration](https://awesome-repositories.com/f/devops-infrastructure/database-cluster-orchestration.md) — Automates the deployment, high availability, and lifecycle management of distributed MySQL database clusters in cloud environments.
- [Automated Failover Mechanisms](https://awesome-repositories.com/f/devops-infrastructure/devops/operational-reliability/automated-failover-mechanisms.md) — Monitors database health and automatically promotes replicas to primary status during outages to maintain service continuity. ([source](https://vitess.io/docs/troubleshoot/primary-read-only/))
- [Request Routing](https://awesome-repositories.com/f/devops-infrastructure/request-routing.md) — Directs incoming database requests to the appropriate shards based on defined keys and schema metadata. ([source](https://vitess.io/docs/24.0/))
- [Container Orchestration Environments](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration-environments.md) — Automates the deployment, scaling, and lifecycle management of distributed database nodes using declarative configurations within containerized environments. ([source](https://vitess.io/docs/24.0/get-started/))
- [Server Configuration Management](https://awesome-repositories.com/f/devops-infrastructure/server-configuration-management.md) — Allows users to adjust server variables, operational modes, and connection settings to optimize database performance and behavior within a cluster. ([source](https://vitess.io/docs/faq/operating-vitess/))
- [Traffic Throttling](https://awesome-repositories.com/f/devops-infrastructure/traffic-management/traffic-throttling.md) — Limits or blocks specific queries and user jobs to maintain system stability when excessive load threatens overall database performance. ([source](https://vitess.io/docs/troubleshoot/elevated-query-latency/))

### Software Engineering & Architecture

- [Commit Protocols](https://awesome-repositories.com/f/software-engineering-architecture/commit-protocols.md) — Manages distributed transactions across multiple shards by orchestrating atomic commits and rollbacks to ensure data consistency.

### System Administration & Monitoring

- [Cluster Health Monitoring](https://awesome-repositories.com/f/system-administration-monitoring/cluster-health-monitoring.md) — Aggregates metrics, logs, and diagnostic data to provide visibility into the operational state, health, and performance of distributed database clusters. ([source](https://vitess.io/docs/troubleshoot/elevated-query-latency/))
- [Cluster Management Tools](https://awesome-repositories.com/f/system-administration-monitoring/cluster-management-tools.md) — Provides centralized administrative tools to execute routine maintenance tasks, shard management, and operational workflows across distributed database nodes. ([source](https://vitess.io/docs/23.0/get-started/))

### Development Tools & Productivity

- [Performance Benchmarking](https://awesome-repositories.com/f/development-tools-productivity/performance-benchmarking.md) — Measures system throughput and latency across various workloads to identify bottlenecks and track performance regressions. ([source](https://vitess.io/docs/design-docs/miscellaneous/))

### Security & Cryptography

- [Role-Based Access Control](https://awesome-repositories.com/f/security-cryptography/role-based-access-control.md) — Restricts database operations and administrative actions based on user roles and permissions through integrated identity providers. ([source](https://vitess.io/docs/23.0/reference/))
