| ▲ | dwedge 2 days ago | |
This might seem like bait but I assure you it isn't - I reach for MySQL by default over postgres - but why did you choose MySQL for the state database? In terms of HA and synchronous clustering it's a good solution but unless I'm misreading it seems like you only use it for a key value store and for an append only log, neither of which are necessarily the problems you think "MySQL" for. Given what seems to be a pretty fashionable stack (kubernetes, using etcd directly, cloud first, IaC and custom database technology) I'm interested what a company like that reaches for MySQL. Was the MySQL cluster already deployed for other reasons? | ||
| ▲ | benesch a day ago | parent | next [-] | |
Yeah, we've had a PlanetScale cluster since the early days that powers the dashboard experience (turbopuffer.com/dashboard). That's a fairly standard webapp (customers, orgs, users, API keys, namespace stats) that benefits from the relational model. When we built the cplane it was natural to just store the cplane ops in MySQL too. cplane ops belong to clusters which belong to customers, so it's actually rather nice to be able to foreign key it all together [0]. [0] Well, not actually enforced foreign keys, because Vitess, but you get the idea. It lets us apply settings at the customer level that flow to all ops for that customer's clusters. | ||
| ▲ | tao_oat a day ago | parent | prev [-] | |
I've been following Turbopuffer for a while; IIRC the founder talked about scaling MySQL at Shopify. So might just be operational familiarity. | ||