Posted May 23, 2019

For decades, a relational database has lived at the heart of almost every enterprise as one of the most critical and fundamental components in information technology. A relational database accurately stores and retrieves the world’s most important information, such as bank accounts, health records, financial data, sales information, and more.

However, relational databases like MySQL and Postgres were built well before the data explosion brought on by the consumer internet and Web 2.0 companies such as YouTube, Google, Amazon, and others. As the amount of data created, stored, and consumed by the world has grown exponentially larger, the limitations of standard relational databases like MySQL became impossible to ignore. Quite simply, as data needs increase, there is a corresponding requirement to invent new and innovative ways of scaling the underlying database.

The challenge of increasing capacity and performance, while at the same time preserving the transactional characteristics of the database, has proven to be one of the more difficult problems in computer science—and one of the most expensive budget areas for many businesses.

These challenges, particularly for Web 2.0 companies and the generations of startups that followed them, led to the rise of non-relational databases, often called NoSQL. The community behind NoSQL databases realized that managing relational databases at massive scale was a pain. In particular, the operational overhead that internal developer teams had to maintain in order to manage all of this complexity could be incredibly overwhelming and expensive. As part of many NoSQL databases, tools were built to handle some of these relational database problems like sharding, replication, data migrations, adding or removing nodes, and so on.

Because NoSQL databases have been ahead of relational DBs on the operational side, many enterprises have been tempted to relax the power of a relational database for the operational wins that can come with NoSQL. For example, CTOs might consider trading full SQL support and features for the relative simplicity of schema-less design and horizontal scaling to clusters of machines.

Fundamentally, though, no solution has combined the true power of battle-tested relational databases with the reduced operational overhead of NoSQL solutions, without being beholden to services from cloud provider. This last point is often a non-starter for many enterprises like big banks, global e-commerce and consumer players, and others.

The holy grail of relational database design, therefore, requires transactional correctness, horizontal scale, and full use of existing data and robust features of the MySQL ecosystem. And that’s exactly what PlanetScale does.

PlanetScale is built on an open source system called Vitess, which originated at YouTube in 2010 to help it scale its MySQL databases. Vitess lives as middleware and enables the horizontal scaling of existing MySQL databases. After working on and seeing Vitess be used and vetted for over a decade serving billions of users, the original developers of Vitess, Jiten Vaidya and Sugu Sougoumarane, decided to start PlanetScale to bring the power of Vitess into more companies, from startups to enterprises.

With Vitess and PlanetScale, enterprises can take their existing MySQL database and automatically scale it with zero migration of data, zero change in the application later, and zero reduction of SQL features. Fully transactional, completely scalable, with no changes to the underlying database.

The PlanetScale team has not only solved the vexing transaction/scaling problem, but they’ve also super-charged the decades-old relational database market, bringing the most modern software elements to the platform. For example, PlanetScale allows its customers to:

  • Deploy and horizontally scale their existing database to offer it as a service (DbaaS), either on-premise or in the cloud;
  • Deploy databases distributed over multiple regions and multiple cloud providers, so they are not locked into one provider or one geography (which is particularly valuable for handling privacy regulations like GDPR); and
  • Utilize native Kubernetes support, providing a stateful datastore with Kubernetes.

Ultimately, all of these updates allow their customers to choose a database type and design their data infrastructure based on what their businesses and technologies truly need.

Vitess is used in production to manage business-critical MySQL clusters at top brands like Slack, Square, Pinterest, Hubspot, GitHub, Booking.comJD.com and many others.  As a pre-series A company, PlanetScale has shown remarkable traction by converting  many of these brands to paying customers – Slack, GitHub and New Relic among those who have agreed to be named.

I have been waiting for years for such a reliable and practical solution with the right engineering tradeoffs. PlanetScale is that solution. We are honored to be working with Jiten, Sugu and the entire PlanetScale team, and we look forward to watching the world adopt the next generation of database design.

***