I changed databases again (please learn from my mistakes)

I changed databases again (please learn from my mistakes)

Source: YouTube · Theo - t3․gg · published May 18, 2025 · 1:11:02

Cybersecurity
No ratings yet Log in to rate
Transcript Available
Description

The main goal of this video is to share the journey of migrating from a custom, chaotic local-first database setup to Convex, a modern application database, to solve persistent engineering pain points like split brain, unblockable team workflows, and poor user experiences—while ultimately achieving a simpler, more maintainable, and scalable system. 0:00-1:03

Key Takeaways:
• The original setup used IndexedDB with Dexi, which was simple but painful due to race conditions, lack of schema consistency, and poor reliability—especially in Safari and with multiple browser tabs 4:20-5:59.
• A major flaw was the split brain problem: data existed in multiple formats across local and server storage, leading to inconsistent states and complex migrations 12:19-13:02.
• The migration aimed to eliminate the client as a source of truth, enabling signed-out experiences and reliable data persistence, while improving resumable streams and optimistic updates 15:22-16:52.
• Convex solved all these issues by providing a single source of truth, TypeScript-based mutations, automatic query updates, and built-in permission and schema handling—making the codebase dramatically simpler and maintainable 30:01-39:58.
• The transition was painful, involving a 4-day debugging session and multiple merge conflicts, but the result is a system that finally allows the team to unblock development and ship features confidently [0:31-1:00, 17:46-18:11].

After years of struggle with local-first databases, the team now trusts the database as the source of truth, reducing complexity and enabling smoother team collaboration and feature development. 39:58-40:25

Sources:

  • 0:00-1:03 Overview of the migration journey and core goals.
  • 4:20-5:59 Problems with IndexedDB and Dexi, including race conditions and data

Generate CPE Credits

Generate a professional CPE document from this video's transcript.

Estimated credit: 1 CPE hours

Estimate uses the video runtime (1 hour ≈ 1 CPE, rounded to the nearest 0.5, minimum 0.5, maximum 2.0). The final amount can be lower after review, never higher.

Topic: Cybersecurity. Commonly maps to: Security and Risk Management, Security Operations. Exact CISSP domains are assigned during generation.

CISSP Domain Mapping
Learning Objectives
Self-Assessment Questions
PDF Export Ready

Free account. One generation at a time, with a daily limit.

CPEBuddy is independent and not affiliated with or endorsed by ISC2, ISACA, or any certification body. Exports are formatted for common CPE submissions; acceptance is at your certification body's discretion.

Watch on YouTube

Transcript Preview

First 800 characters of the transcript

Yes, I really changed databases again. I know, I know. I need to stop doing this. You've probably already seen the video where I talked about the other three database changes that I made. Well, I I hope this is the last one because it has been a wild ride. We're going to be going deep on the new database I chose, which spoiler alert, it's Convex. How I got there, what we're seeing as the benefits of it, and why this migration took five plus years off of my life. I had the most chaotic debugging session that lasted like 4 days. I effectively thought I was solving a murder mystery at a point because I was so deep in. I wouldn't wish what I went through there on anyone. And before we go that much further, I want to clarify that almost none of it was Convex's fault. But I think there's a lot t…