Skip to content
Tool Review · Database Proxy & Connection Pooling

Vitess

Vitess is an Apache 2.0, CNCF-graduated clustering system that shards MySQL across many servers behind VTGate, a MySQL-protocol query router; v24 (April 2026) supports MySQL and Percona Server 8.0 and 8.4, and PlanetScale offers it as a managed service.

Free Research-based review
Last verified November 2026. Version checked: 24.0.5 (13 October 2026); v24.0.0 GA on 30 April 2026. Features and pricing for commercial products change; check the vendor site for the latest details.
Product status: Actively developed, with a major release about every six months (v22 April 2025, v23 November 2025, v24 April 2026) and v25 in development. The v24 docs state that Vitess 24 is the final release with MySQL 8.0 support. Vitess graduated in the CNCF on 5 November 2019.
Vendor
Vitess project (CNCF graduated; maintainers include PlanetScale)
Price
Free
Platforms
Kubernetes, Linux, Self-hosted, Managed via PlanetScale
Licence
Apache License 2.0
Product type
Open source project (Apache 2.0, CNCF graduated)
Official site
Works with
MySQL 8.0 and 8.4Percona Server for MySQL 8.0 and 8.4Imports from MySQL and Percona 5.7 to 8.4 and MariaDB 10.10+etcd, ZooKeeper or Consul (topology service)

At a glance

Supported databasesMySQL and Percona Server 8.0 and 8.4 (v24, the last release with 8.0); MariaDB only as an import source
Pooling modesVTTablet connection pools multiplex client connections onto MySQL connections
Routing and read/write splittingVTGate routes by VSchema and vindexes to shards; v24 adds tablet targeting through an extended USE statement
Load balancing and failoverStateless VTGates scale horizontally; VTOrc handles failover and reparenting
Authentication and TLSVTGate auth methods: none (default), static file, LDAP, TLS client certificates, Vault; TLS guide documented
Sharding and transactionsSingle-shard transactions fully ACID; multi-shard best-effort by default, TWOPC mode for atomic commits
DeploymentSelf-hosted on Kubernetes (operator) or VMs; managed as PlanetScale Vitess
LicensingApache 2.0, free; CNCF graduated project
Short answer

Vitess is the established way to scale MySQL horizontally while keeping the MySQL protocol: VTGate routes each query to the right shards, VTTablet manages each MySQL instance, and resharding happens online. It is a distributed system to operate, with real compatibility limits for sharded keyspaces, so it pays off when a single MySQL primary is no longer enough, not as a simple proxy.

How we know: This profile is research-based: architecture, supported versions, compatibility limits, authentication options and release history were checked on 7 November 2026 against the Vitess v24 documentation and blog on vitess.io, the vitessio/vitess GitHub repository and releases, the CNCF project page, PlanetScale's about page and the planetscale/vitess-operator repository. We have not deployed Vitess or run queries through it.

Overview

Vitess is a database clustering system for horizontal scaling of MySQL, which served all of YouTube's database traffic for years and is now a graduated CNCF project. Applications connect to VTGate, a stateless proxy that speaks the MySQL protocol, looks up where rows live using the keyspace's VSchema and vindexes, and routes or scatters queries to shards. Each MySQL instance runs with a VTTablet agent that manages queries, connection pools and replication, and cluster state lives in a topology service (etcd, ZooKeeper or Consul). VTOrc handles automated failover, and VReplication powers resharding, MoveTables migrations and online schema changes.

Vitess 24 supports MySQL and Percona Server 8.0 and 8.4, and is the last release to support 8.0. Sharded keyspaces carry documented limits: multi-shard transactions are best-effort by default (TWOPC mode gives atomic cross-shard commits), stored procedures run only on unsharded keyspaces or a targeted shard, and auto-increment needs Vitess Sequences. PlanetScale, whose founders are Vitess co-creators and maintainers, runs Vitess as a managed service and publishes the Vitess Kubernetes Operator (2.17.0 shipped with v24). See the PlanetScale profile for the managed option.

Key features

  • VTGate query router that speaks the MySQL protocol and routes or scatters queries across shards
  • Horizontal and vertical sharding with pluggable vindexes and online resharding through VReplication
  • Connection pooling in VTTablet, multiplexing application connections onto fewer MySQL connections
  • Query protection: rewriting, blocking, killing long queries, row and time limits in OLTP mode, table ACLs
  • VTOrc for planned and unplanned failover and reparenting
  • Online schema changes and MoveTables migrations into Vitess from existing MySQL
  • Kubernetes Operator (planetscale/vitess-operator) for running clusters on Kubernetes

Integrations and ecosystem

MySQL and Percona ServerKubernetes (Vitess Operator)etcd, ZooKeeper or ConsulPlanetScale (managed Vitess)OpenTelemetry tracing (v24)MySQL CLONE for replica provisioning (v24)

Pros and cons

Pros

  • Proven way to shard MySQL while applications keep using MySQL drivers
  • Online resharding and table moves through VReplication
  • Apache 2.0 and CNCF governance, with a regular six-month major release cycle
  • Managed option available from PlanetScale

Cons

  • Many components to operate: VTGate, VTTablet, topology service, VTOrc and MySQL
  • Documented limits on sharded keyspaces: stored procedures, temporary tables, views and cross-shard transaction semantics
  • Schema design must choose sharding keys (vindexes) up front for good routing
  • MySQL 8.0 support ends after v24, so 8.0 estates need an 8.4 plan

Pricing

Vitess is free, open source software under the Apache 2.0 licence, hosted by the Cloud Native Computing Foundation. Running it yourself costs the MySQL servers, the topology service and the Kubernetes or VM capacity, plus operations time. PlanetScale, founded by co-creators and maintainers of Vitess, sells it as a managed service from 39 USD a month (PS-10, three nodes, AWS us-east-1); see the PlanetScale profile for its pricing.

Pricing checked on the vendor's official page on 7 November 2026. Prices change; confirm before buying.

Who it is best for

Engineering teams whose MySQL workload has outgrown a single primary and who are ready to run, or buy, a sharded MySQL-compatible platform.

Typical use cases

  • Sharding a large MySQL table set across many servers without rewriting the data access layer
  • Moving tables from an existing MySQL database into a sharded keyspace with MoveTables
  • Running many MySQL shards on Kubernetes with the Vitess Operator
  • Protecting MySQL from runaway queries with VTTablet limits and query killing

Who should look elsewhere

  • Teams that only need read/write splitting or pooling in front of ordinary replication: ProxySQL is much simpler.
  • PostgreSQL workloads: consider Citus for sharded PostgreSQL.

Verdict

Our take

Vitess is the reference open source answer for horizontally scaling MySQL, with VTGate giving applications a single MySQL endpoint over many shards. It brings real operational weight and compatibility trade-offs, so it suits teams with genuine scale needs, either self-hosted on Kubernetes or bought as PlanetScale.

Frequently asked questions

What is VTGate?

VTGate is the Vitess query router. It accepts MySQL protocol connections, works out which shards a query needs from the VSchema, sends it there and merges the results, so applications see one database.

Is Vitess the same as PlanetScale?

No. Vitess is an Apache 2.0 CNCF project. PlanetScale is a company founded by Vitess co-creators and maintainers that sells managed Vitess (and separately managed Postgres), with no free plan.

Which MySQL versions does Vitess support?

Vitess 24 supports MySQL and Percona Server 8.0 and 8.4, and its documentation says it is the final release with MySQL 8.0 support. MariaDB is supported only as a source for importing data.

Are transactions across shards ACID in Vitess?

Single-shard transactions are. Multi-shard transactions are best-effort by default and use READ COMMITTED isolation across shards; the TWOPC mode provides atomic commits across shards.

Sources

Checked November 2026.

Listed in: Database Proxy & Connection Pooling.

How we research reviews and what star ratings mean: our editorial method.

Compare your options

Browse the full tools directory or see the head to head comparisons.