TAOBench: Running social media workloads on PlanetScale
Engineering

TAOBench: Running social media workloads on PlanetScale

Learn how we used TAOBench with PlanetScale to benchmark social media workloads

Liz van Dijk
September 8, 2022
One million queries per second with MySQL
Engineering

One million queries per second with MySQL

Discover how PlanetScale handles one million queries per second (QPS) with horizontal sharding in MySQL

Jonah Berquist
September 1, 2022
Zero downtime Laravel migrations
Engineering

Zero downtime Laravel migrations

Learn how to run no downtime non-blocking schema migrations in your production Laravel app with PlanetScale.

Holly Guevara
August 29, 2022
How product design works at PlanetScale
Engineering

How product design works at PlanetScale

Learn about the lightweight and highly collaborative process our product design team follows to ship quickly at PlanetScale.

Jason Long
August 22, 2022
Introducing FastPage: Faster offset pagination for Rails apps
Engineering

Introducing FastPage: Faster offset pagination for Rails apps

Introducing FastPage, a new gem for ActiveRecord that speeds up deep pagination queries.

Mike Coutermarsh
August 16, 2022
How to kill Sidekiq jobs in Ruby on Rails
Engineering

How to kill Sidekiq jobs in Ruby on Rails

Learn how PlanetScale uses a custom middleware to kill our Sidekiq jobs in production without relying on deploys.

Elom Gomez
August 15, 2022
Database DevOps
Engineering

Database DevOps

Learn how PlanetScale enables databases to seamlessly fit into the DevOps lifecycle.

Sam Lambert
August 8, 2022
Ruby on Rails: 3 tips for deleting data at scale
Engineering

Ruby on Rails: 3 tips for deleting data at scale

Learn how to delete data in large Rails apps with destroy_async, delete, destroy, and scheduled cron jobs.

Mike Coutermarsh
August 1, 2022
The Slotted Counter Pattern
Engineering

The Slotted Counter Pattern

Handle MySQL increment counter bursts with the Slotted Counter Pattern

Sam Lambert
July 28, 2022
Behind the scenes: How we built Password Roles
Engineering

Behind the scenes: How we built Password Roles

Learn how we leveraged Vitess ACLs and VTTablet to build our password roles functionality

Phani Raju
July 27, 2022
Temporal Workflows at scale with PlanetScale - Part 1
Engineering

Temporal Workflows at scale with PlanetScale - Part 1

Learn how to create a more reliable workflow with Temporal and PlanetScale

Savannah Longoria
July 22, 2022
How do database indexes work?
Engineering

How do database indexes work?

Learn how database indexes work under the hood and how they can be used to speed up queries

Justin Gage
July 14, 2022
Consensus algorithms at scale: Part 8 - Closing thoughts
Engineering

Consensus algorithms at scale: Part 8 - Closing thoughts

In the final installment of the consensus algorithm series, we pull everything together with some final thoughts.

Sugu Sougoumarane
July 7, 2022
Consensus algorithms at scale: Part 7 - Propagating requests
Engineering

Consensus algorithms at scale: Part 7 - Propagating requests

In part 7 of the Consensus algorithm series, we combine everything we've worked at to cover propagating requests

Sugu Sougoumarane
July 1, 2022
Identifying slow Rails queries with sqlcommenter
Engineering

Identifying slow Rails queries with sqlcommenter

Learn how to use sqlcommenter with Rails

Mike Coutermarsh
Iheanyi Ekechukwu
June 29, 2022
Consensus algorithms at scale: Part 6 - Completing requests
Engineering

Consensus algorithms at scale: Part 6 - Completing requests

In part 6 of the Consensus algorithms series, we look at how to handle request completions

Sugu Sougoumarane
June 21, 2022
The operational relational schema paradigm
Engineering

The operational relational schema paradigm

An exploration of the current landscape of schema change methodology and what the future should look like.

Shlomi Noach
May 9, 2022
Feature storytelling with Framer Motion
Engineering

Feature storytelling with Framer Motion

Learn how we used Framer Motion to create our schema revert feature’s narrative animation.

Derek Briggs
May 5, 2022
Consensus algorithms at scale: Part 5 - Handling races
Engineering

Consensus algorithms at scale: Part 5 - Handling races

In part 5 of our consensus algorithms series, we discuss how we handle race conditions and forward progress requirements.

Sugu Sougoumarane
April 28, 2022
Consensus algorithms at scale: Part 4 - Establishment and revocation
Engineering

Consensus algorithms at scale: Part 4 - Establishment and revocation

In part 4 of the consensus algorithms series, we look at how algorithm leaders are established and revoked.

Sugu Sougoumarane
April 6, 2022
Generics can make your Go code slower
Engineering

Generics can make your Go code slower

Go 1.18 is here, and with it, the first release of the long-awaited implementation of Generics is finally ready for production usage. Generics are a frequently requested feature that has been highly contentious throughout the Go community.

Vicent Marti
March 30, 2022
Why we chose NanoIDs for PlanetScale's API
Engineering

Why we chose NanoIDs for PlanetScale's API

Learn why PlanetScale used NanoID to generate obscure and URL friendly identifiers.

Mike Coutermarsh
March 29, 2022
Behind the scenes: How schema reverts work
Engineering

Behind the scenes: How schema reverts work

Learn how we used VReplication to allow for migration reverts with data retention.

Holly Guevara
Shlomi Noach
March 24, 2022
How we made PlanetScale’s background jobs self-healing
Engineering

How we made PlanetScale’s background jobs self-healing

How to build self-healing background jobs into your application with background queueing systems, like Sidekiq.

Mike Coutermarsh
February 17, 2022
Introduction to Laravel caching
Engineering

Introduction to Laravel caching

Learn how to speed up your Laravel applications with caching.

Holly Guevara
February 9, 2022
Using entropy for user-friendly strong passwords
Engineering

Using entropy for user-friendly strong passwords

When implementing user authentication with passwords, throw out the password rules you know.

Mike Coutermarsh
January 24, 2022
How our Rails test suite runs in 1 minute on Buildkite
Engineering

How our Rails test suite runs in 1 minute on Buildkite

Learn how we use minitest and FactoryBot with parallel tests to get our Rails test suite to run in 1 minute on Buildkite.

Mike Coutermarsh
January 18, 2022
NoneSQL, All the DevEx
Engineering

NoneSQL, All the DevEx

Databases will win based on superior developer experience, not what is under the hood.

Justin Gage
August 27, 2021
Building PlanetScale with PlanetScale
Engineering

Building PlanetScale with PlanetScale

How PlanetScale uses Database Branching™ and non-blocking schema changes to build PlanetScale.

Iheanyi Ekechukwu
August 18, 2021
The promises and realities of the relational database model
Engineering

The promises and realities of the relational database model

The relational model is one of the oldest surviving models in computer science but it has some drawbacks that need to be addressed.

Shlomi Noach
July 13, 2021
Horizontal Sharding for MySQL Made Easy
Engineering

Horizontal Sharding for MySQL Made Easy

For developers building out a web application, a transactional datastore is the obvious and proven choice, but with success comes scale limitations.

Lucy Burns
October 22, 2020
Pitfalls of isolation levels in distributed databases
Engineering

Pitfalls of isolation levels in distributed databases

The more loosely coupled components are in a distributed system, the better it scale

Sugu Sougoumarane
October 4, 2020
Consensus algorithms at scale: Part 3 - Use cases
Engineering

Consensus algorithms at scale: Part 3 - Use cases

Consensus Use Cases

Sugu Sougoumarane
September 26, 2020
Orchestrator failure detection and recovery: New Beginnings
Engineering

Orchestrator failure detection and recovery: New Beginnings

how the new integration adds new failure detection and recovery scenarios, making orchestrator’s operation goal-oriented.

Shlomi Noach
September 19, 2020
Consensus algorithms at scale: Part 2 - Rules of consensus
Engineering

Consensus algorithms at scale: Part 2 - Rules of consensus

The Rules of Consensus

Sugu Sougoumarane
September 9, 2020
Consensus algorithms at scale: Part 1 - Introduction
Engineering

Consensus algorithms at scale: Part 1 - Introduction

This is a multi-part blog series and will be updated with links to the corresponding posts.

Sugu Sougoumarane
August 28, 2020
Learn Horizontal Scaling on PlanetScaleDB with Vitess — Rate Puppies in a Rust app with Sharded MySQL Database
Engineering

Learn Horizontal Scaling on PlanetScaleDB with Vitess — Rate Puppies in a Rust app with Sharded MySQL Database

Rate Puppies in a Rust app with Sharded MySQL Database

Jiten Vaidya
August 14, 2020
ACID Transactions are not just for banks - the Vitess approach
Engineering

ACID Transactions are not just for banks - the Vitess approach

Build systems that do not lose data. Vitess prevents asynchronous failure in two ways: (1) ensuring that the changes are saved locally on storage, with the redo log and binary logs safely written to disk and (2) making use of semi-synchronous replication.

Jiten Vaidya
April 29, 2020