The challenges of supporting foreign key constraints
Dec 5, 2023Shlomi Noach, Manan Gupta

Summary
This post details the significant technical challenges and solutions involved in adding support for foreign key constraints to PlanetScale's database offering, particularly in conjunction with its existing features like branching, deploy requests, and online DDL. It explains how foreign key constraints impact schema diff evaluation, deployment planning, and revertibility. The post also delves into the complexities of supporting foreign keys during query serving and the specific issues encountered with Vitess's Online DDL process, including tailing binary logs, finalizing parent tables, and backfilling shadow tables. Solutions involving VReplication and custom logic for handling cascading actions and table swaps are discussed.