Sugu Sougoumarane, creator of Vitess, comes off sabbatical to bring Vitess to Postgres. We discuss what motivated Sugu to come off sabbatical, why now is the time, the technical challenges of doing so, the implementation details of Multigres (Vitess for Postgres). We also discuss the state of Postgres at scale. :link: https://changelog.fm/651
Ch | Start | Title | Runs |
---|---|---|---|
01 | 00:00 | This week on The Changelog | 01:01 |
02 | 01:01 | Sponsor: Depot | 02:18 |
03 | 03:19 | Start the show! | 03:43 |
04 | 07:02 | Why sabatical? | 03:37 |
05 | 10:40 | What is Vitess? | 04:13 |
06 | 14:53 | From side project at YouTube to full-on company | 03:43 |
07 | 18:35 | Where is Vitess for Postgres? | 04:23 |
08 | 22:59 | Sugu's Ah ha! moment | 04:42 |
09 | 27:41 | Explaining Keyspace ID in Vitess | 06:48 |
10 | 34:29 | Sponsor: CodeRabbit | 02:44 |
11 | 37:12 | What's different? | 04:03 |
12 | 41:15 | Does this compromise Postgres for life? | 01:56 |
13 | 43:11 | Porting Vitess to Multigres | 06:38 |
14 | 49:49 | What are your marching orders? | 01:19 |
15 | 51:08 | Are you writting this in Go? | 01:59 |
16 | 53:07 | Building the team | 01:05 |
17 | 54:12 | Implementing Multigres | 02:45 |
18 | 56:57 | Multigres to Supabase | 06:38 |
19 | 1:03:35 | Unburdened by past decisions | 03:57 |
20 | 1:07:32 | State of Postgres at scale | 06:03 |
21 | 1:13:35 | LIVE IN DENVER!! | 01:38 |
This was such a great episode. I was left in awe of what Sugu accomplished and also that Google gave him three months of thinking time on a project.
Best of luck to the team.
BTW no mention of cockroach db.
Loved this episode as well. Had no idea YouTube was using MySql at that scale.
I’m pretty sure I mentioned Cockroach but I think it was brief and closer to the end.
CockroachDB is great but almost no developer chooses it for a new project due to lack of awareness of it. Everyone thinks PostgreSQL or MySQL and their respective clustering programs.
There is also yugabyte which you never heard about even though it's been around a long time.
Perhaps possible guests for the podcasts.
Yeah Yugabyte too. TiDB too.
i was extremely interested in CockroachDB until they changed the licence
and i understand why teams/companies do it, but it pretty much kills the project instantly for me
Tell me about it. One of the reasons I left there.
Jerod's "now do SQLite" comment reminded me of the production grade, multi-reader/writer, snapshot and serializable homegrown RDBMS with a SQLite query interface and automatic time sharding that Bloomberg has been quietly building for 20 years (8 years since open sourcing): https://github.com/bloomberg/comdb2
It's not Vitess for SQLite (the commonalities with SQLite don't go much further than the query interface). Also, I don't know of anyone else who's adopted it, let alone any support offerings. And Bloomberg owns the roadmap and will do what they want with it.
But still, I feel like it's an interesting piece of database tech that's rarely discussed. If it had come out of a startup that had IPO'd with a bunch of engineers flush with seed funding, I expect it would've spawned at least one commercial company.
Very cool, thanks for sharing. I need to listen to this episode as we’re currently looking at how we can improve write latency from our other fulfilment centres. We can’t shard all of our data due to data residency constraints. I’ve been looking at implementing something like Turso to act as a stateful write through cache with a service that synchronises back to our London DB, but no matter how I’m trying to slice this pie it’s very complex. Vitess was also on my radar, however we use MariaDB so I’m not entirely sure on compatibility, though I’ve seen MariaDB has GalleraCluster mode which looks similar.
Also toying with the idea of seeing how much latency we can save just by leveraging AWS backbone, but the speed of light will only get you so far!
Combdb2 sounds interesting and still being actively developed. It's amazing I have never even heard of it.
There are several projects that give you distributed sqlite.
https://github.com/rqlite/rqlite
https://fly.io/docs/litefs/
https://canonical.com/dqlite
https://turso.tech/
I don't know how they all deal with sharding though. Turso does allow you to create as many databases as you want but of course you need to manage them in the app.
Big sigh from me is that none of them support ruby as an official supported language.
@Tim Uckun aren’t most of them SQLite extensions? How would you need support for a specific language?
I suppose it depends on if they depart from the file format that is compatible with existing libsqlite and/or per-language bindings
E.g. I think turso will read SQLite files, but writes a new format to support the new features it adds on top
So, for e.g. Ruby, you'd need Ruby bindings to libturso or something
rqlite and dqlite are daemons that sit in front of sqlite to manage the cluster, I am not sure exactly how litefs works. Turso has their own libsql which is sqlite compatible. They have a ruby wrapper but it didn't work with rails when I tried it even though it worked with a plain old ruby script.
Turso is also rewriting sqlite from scratch but they are not done with that effort yet.
If I understand correctly, LiteFS is transparent to the SQLite library in your application. It thinks it’s writing to a file as usual, but the replication is happening in the FUSE filesystem, which captures the write ahead log for replication before passing it along to the normal file system to actually write the changes. https://fly.io/docs/litefs/how-it-works/
Sounds kind of like DRBD.
Anyway this is what they say on the first page
Important: We are not able to provide support or guidance for this product. Use with caution.
Last updated: Aug 18 2025 at 01:38 UTC