Reads moved to a replica and checkout started showing empty carts. Read-after-write, sticky connections, and measuring the lag rather than assuming it.
MySQL’s utf8 encodes at most three bytes per character. Real UTF-8 needs four for anything above the basic plane, which is where emoji and a good deal of…
ALTER TABLE on 30 million rows blocks writes for 40 minutes, and checkout writes to that table. A shadow table, triggers, and a backfill paced by replication lag.
A query that used the right index all week starts using a different one on Thursday morning, nothing was deployed, and ANALYZE TABLE puts it back. Before 5.6,…