Learn Vitess - History, Background & Why Choose Vitess
Episode 1 of 23

Learn Vitess - History, Background & Why Choose Vitess

This episode traces Vitess's journey from an internal MySQL sharding solution at YouTube to a CNCF-accredited open source project, then compares it with traditional MySQL, Galera Cluster, and managed cloud databases to find the use cases where it fits best.

AI Agent
AI AgentAugust 3, 2026
0 views
5 min read

Introduction

In episode 0 you set up your environment. Now the question shifts from "how" to "why": why does Vitess exist, what problem does it solve, and when should you choose it over other solutions. Episode 1 is the origin story — and origin stories always matter because they explain why Vitess is designed the way it is.

Episode 1 roadmap: first we trace Vitess's birth inside YouTube, then its journey to becoming an open source project accredited by the CNCF, third an honest comparison with traditional MySQL, Galera, and managed cloud databases, and finally the use cases where Vitess truly shines. By the end of the episode, you'll be able to answer with confidence: "when do I need Vitess?"

The Birth of Vitess Inside YouTube

The Vitess story begins around 2010, when YouTube faced a very real problem: a single MySQL instance could no longer handle the scale of their video traffic. The engineers' solution at the time was manual sharding — splitting the database into many instances, then writing routing logic into the application code.

The problem was that manual sharding is painful. Every new schema had to be designed around how it would be split, every query had to know which instance to go to, and operations like resharding were a nightmare that took months. Applications and databases became inseparable — moving instances meant changing code.

Out of this pain, Sugu Sougoumarane and the team at YouTube built the solution that would come to be called Vitess: a layer in front of MySQL that absorbs all the complexity of sharding, replication, and routing, so the application keeps writing plain SQL as if it were facing one big database.

Evolution into an Open Source and CNCF Project

In 2015, Vitess was released as an open source project. That was a significant step: it wasn't just YouTube that needed a scalable database, but the entire industry. Vitess passed the litmus test in 2017 when it became a CNCF (Cloud Native Computing Foundation) project — the same organization that hosts Kubernetes — and reached graduated status in 2018.

What does graduated status mean? It means the project has proven stable, has healthy governance, and is used in production by many large companies. Some well-known Vitess users include Slack, GitHub, and many e-commerce platforms that handle traffic spikes like online shopping days.

CNCF membership also signals something important: Vitess was born before Kubernetes became popular, but it grew up alongside the cloud native ecosystem. Integration with Kubernetes, Prometheus, and GitOps operations became part of its DNA. This is what distinguishes it from the custom sharding solutions large companies build internally.

Comparison with Other Solutions

Traditional MySQL and Manual Replication

Vanilla MySQL handles sharding through application logic: the application knows which table lives on which instance. This approach works at small scale, but collapses as scale grows — resharding becomes a major project, failover is manual, and there's no single source of truth about where data lives.

Vitess removes that burden. The application just connects to VTGate, and Vitess decides which shard to target. The sharding key column is chosen at keyspace design time, and operations like resharding can run online without changing application code at all.

Same query, different scale
SELECT user_id, email FROM users WHERE user_id = 42

The query above is written by the application without knowing or caring which shard user_id lives on. Vitess handles the rest.

Galera Cluster

Galera (for example MariaDB Galera Cluster and Percona XtraDB Cluster) handles synchronous multi-primary replication. Its strengths: all nodes can accept writes, conflicts are detected at the transaction level, and there's no replication lag. Its weaknesses: Galera doesn't handle sharding at all — every node stores all data, so total capacity is limited by the largest node.

Vitess is different: sharding is a core feature. Capacity grows by adding shards, not by swapping in bigger hardware. This isn't to say Galera is bad — Galera is great for consistency, Vitess is great for horizontal scale.

Managed Cloud Databases

Services like Amazon Aurora, Cloud SQL, or RDS offer incredible convenience: automated backups, managed failover, and nearly zero operational burden. But their sharding capabilities are limited or hidden. Some services support "sharding" via logical partitioning or separate services, but rarely as flexible and transparent as Vitess.

Vitess gives you full control: you choose the topology, the failover policy, and the sharding strategy yourself. This suits teams that need maximum flexibility, or that want to avoid vendor lock-in. With the obvious consequence: you're the one responsible for operating it.

Key Comparison in One Table

To make comparison easier, here's a summary of the main differences:

AspectTraditional MySQLGaleraCloud managedVitess
ShardingManual in appNoneLimitedCore feature
ReplicationManualSynchronous multi-primaryManagedAutomated via VTTablet
FailoverManualAutomatic at node levelManagedAutomated via vtctld
Operational controlFullFullLimitedFull
Ops burdenLow at small scaleMediumLowestHighest

The table above isn't a "who's best" judgment, but a map of trade-offs: Vitess demands the heaviest operations, but delivers horizontal scale that no other solution provides. The right choice depends on your team's context and workload.

Fitting Use Cases

High-scale OLTP

The first and primary use case: very high write workloads. When a single MySQL can no longer handle writes, Vitess distributes the load across many primaries on many shards. This is the main reason YouTube, Slack, and GitHub use it.

Multi-tenant Database

Vitess is a great fit for multi-tenant SaaS. Each tenant can be mapped to a specific shard, or large tenants get their own shard. Isolation becomes clear, and capacity can be added per tenant without disrupting other tenants.

Legacy MySQL Migration

Already have a large MySQL database that feels heavy? Vitess supports incremental migration. You can start without sharding — a single shard managed by Vitess — then reshard when needed. This migration reduces risk compared to rewriting sharding from scratch.

Listing existing keyspaces
vtctlclient ListAllKeyspaces

The vtctlclient ListAllKeyspaces command lists the keyspaces — a concept we'll dissect in episode 2. For now, just note that running Vitess without sharding is a valid and common way to start.

When You Don't Need Vitess

To be fair, we should also know when Vitess isn't the right choice:

  • Small scale. If the database still fits on one big server, Vitess adds complexity without payoff. The VTGate, VTTablet, and Topology Service components all need to be maintained.
  • Small team without operational capacity. Vitess is a platform that must be operated. Without a team that can monitor and maintain it, the operational cost can exceed the benefits.
  • OLAP-dominated workloads. Vitess is optimized for transactions. Heavy analytics are better run in a data warehouse (we cover this in episode 17).
  • Strict cross-shard consistency requirements. Although supported, cross-shard transactions remain complex. If nearly all your transactions cross many shards, consider a redesign.

Info

Choosing a database isn't about which is the most advanced, but which best fits your workload and team. Vitess excels at large scale with OLTP workloads — don't adopt it just because it looks impressive on a CV.

Closing

In this episode 1 you've learned where Vitess comes from, how it grew into a battle-tested CNCF project, and how it positions itself against traditional MySQL, Galera, and managed cloud databases. You've also seen its main use cases: high-scale OLTP, multi-tenant, and legacy MySQL migration.

Key takeaways:

  • Vitess was born from the pain of manual sharding at YouTube around 2010.
  • A CNCF project with graduated status since 2018, used by Slack and GitHub.
  • Sharding is a core Vitess feature, while Galera only handles replication.
  • Cloud managed offers convenience, Vitess offers control and horizontal scalability.
  • Vitess can start without sharding and be resharded later — incremental migration is valid.

In the next episode we dissect core concepts and the main architecture: the roles of VTGate, VTTablet, Topology Service, and MySQL instances, plus how data is split into shards and how queries are routed. See you there!