Offline-first, multiplayer SQLite

Поділитися
Вставка
  • Опубліковано 30 чер 2024
  • Join the waitlist for my SQLite course launching in June: highperformancesqlite.com/
    Get production ready SQLite with Turso: turso.tech/tryhard.
    In this interview I talk to Carl Sverre about his new project: SQLSync. It's an offline-first, collaborative wrapper around SQLite. We cover event sourcing, conflict resolution, VFSes, and more!
    Carl: / carlsverre
    PartyKit: www.partykit.io
    SQLSync: sqlsync.dev
    Carl's new company: orbitinghail.dev
    -------
    00:00 Intro and Background
    01:56 What is SQLSync
    02:30 Amplify
    05:08 SQLSync Use Case
    07:35 Multiplayer Explained
    09:41 Durable Objects
    12:00 Compare to PartyKit
    13:08 Local First
    22:46 SQLSync Terminology
    24:28 SQLSync Replication Flow
    27:33 Virtual File System
    33:51 Transactions in WASM
    39:41 Sync to Coordinator
    43:22 Conflict Resolution as Business Logic
    52:03 Sync to Clients
    1:01:12 Goals for SQLSync
    1:04:14 Scaling Limitations
    1:07:30 Graft Storage Engine
    1:14:47 Graft as a SQLite Extension
    1:17:08 What's Next
    -----
  • Фільми й анімація

КОМЕНТАРІ • 37

  • @bluesbr09
    @bluesbr09 16 днів тому +6

    I can’t remember the last time I was having so much fun listening to someone, period. Carl is so intoxicatingly passionate, I love it! And you are so good at extracting that passion for us all to see. That combined with your enthusiasm has resulted in my favorite tech talk to date. Thank you very much for this Carl and Aaron!

    • @aarondfrancis
      @aarondfrancis  13 днів тому +2

      Right! He's excited about what he's doing and that's exciting to listen to

  • @emanuelturis4132
    @emanuelturis4132 20 днів тому +12

    Wow! One of the best tech interviews/podcast episodes that I've seen, ever. And I'm only at minute 30. This is crazy good! Thanks Aaron!

    • @aarondfrancis
      @aarondfrancis  20 днів тому +2

      I'm so glad you're enjoying it! I really love having these chats

  • @brentspotswood
    @brentspotswood 20 днів тому +4

    00:00 Intro and Background
    01:56 What is SQLSync
    02:30 Amplify
    05:08 SQLSync Use Case
    07:35 Multiplayer Explained
    09:41 Durable Objects
    12:00 Compare to PartyKit
    13:08 Local First
    22:46 SQLSync Terminology
    24:28 SQLSync Replication Flow
    27:33 Virtual File System
    33:51 Transactions in WASM
    39:41 Sync to Coordinator
    43:22 Conflict Resolution as Business Logic
    52:03 Sync to Clients
    1:01:12 Goals for SQLSync
    1:04:14 Scaling Limitations
    1:07:30 Graft Storage Engine
    1:14:47 Graft as a SQLite Extension
    1:17:08 What's Next

  • @robrobob
    @robrobob 20 днів тому +1

    Man, this is cool! Always awesome to see what people are building.
    I'm busy with a multi-tenant project right now and considering how trivial it is to create a new SQLite db in code, it's looking like a really good option.

  • @buddy.abc123
    @buddy.abc123 20 днів тому +2

    I'm glad I'm here before 100K subs.
    Aaron will be the biggest Laravel/PHP influencer and he is gonna make it all relevant. Most of us were tuned to hate on PHP without ever using it. He is fixing that

  • @gnatinator
    @gnatinator 19 днів тому

    Sadly still single writer- no horizontal write scaling- the holy grail for SQLite.
    Happy to see more SQLite coverage!

  • @agelessstranger1919
    @agelessstranger1919 20 днів тому +1

    Wow, fantastic interview. both these guys are very smart. a pleasure to hear them discuss this complex topic. (although i'm not sure i got it all... ;)) thanks for sharing!

  • @LV-md6lb
    @LV-md6lb 15 днів тому

    Finally an intro that is actually not annoying!!

  • @kasmanialisaad
    @kasmanialisaad 18 днів тому

    Absolutely loving all the SQLite content. 👏

  • @davidsiewert8649
    @davidsiewert8649 19 днів тому +1

    1) As in all P2P/Sync Databases, how do you do Authentication and Authorization?
    Imagine you are writing a banking app.
    2) how do you prevent people from seeing other peoples balance/info (that is not explicitly shared)?
    3) how do you prevent duplication of transactions/money?
    4) how do you prevent transactions without consent (impersonation)?

  • @maik8143
    @maik8143 19 днів тому

    Great interview!

  • @JohnoScott
    @JohnoScott 20 днів тому

    yep, fantastic interview

  • @KentCDodds-vids
    @KentCDodds-vids 20 днів тому +1

    This is very cool

    • @aarondfrancis
      @aarondfrancis  20 днів тому +1

      Thanks Kent! There is sooo much going on in the SQLite world. What a blast

  • @isaachagoel7344
    @isaachagoel7344 20 днів тому +1

    This sounds identical to Replicache as far as the ideas and APIs go (but implemented differently)

  • @Deep.Development
    @Deep.Development 13 днів тому

    👌

  • @BradleyBernard
    @BradleyBernard 19 днів тому

    Me trying to listen to this on the plane: 😵 any thoughts on making podcast versions of these? Would be nice to have :)

    • @aarondfrancis
      @aarondfrancis  19 днів тому +2

      Yes, I shall consider it! I think it's a great idea.

  • @BarakaAndrew
    @BarakaAndrew 20 днів тому

    WebAssembly code within the db, that would be kinda sick if it can also work with transactions.

  • @pxkqd
    @pxkqd 20 днів тому

    Can this be used peer to peer from browser to browser? Or does it need a server coordinator for two clients to sync?

    • @aarondfrancis
      @aarondfrancis  19 днів тому +1

      As far as I understood it needs one central source of truth

  • @panggilmeiam
    @panggilmeiam 20 днів тому

    I am also create Native libSQL Native Extension for PHP, Turso Driver Laravel, and Turso Doctrine DBAL!

    • @aarondfrancis
      @aarondfrancis  20 днів тому +1

      Heck yeah you are! You're doing great work

  • @stevendavis7628
    @stevendavis7628 20 днів тому

    Aaron... I'm an old, dusty programmer and I'm looking to ship fast.
    Laravel and PHP look like the answer.
    (A programmers job is to write as little code as possible to solve a problem..right?)
    ...
    Besides your channel ;),
    ...any good recommendations for books and such to get up to speed fast?
    ..and read the manuals of course.
    Steve

    • @aarondfrancis
      @aarondfrancis  20 днів тому +1

      I would *definitely* recommend laracasts.com. By far the best way to get up to speed!

    • @stevendavis7628
      @stevendavis7628 20 днів тому

      @@aarondfrancis - thank you.
      I enjoyed the geeking out...definitely slick tech.
      I'm not sure I love it for actual game multi-player as you've got potential problems at the Business layer (above logical and physical) both with synch issues and hacking and cheating (my old areas).

  • @fredguth1315
    @fredguth1315 20 днів тому

    Could this work with duckdb?

    • @aarondfrancis
      @aarondfrancis  19 днів тому +1

      I'm not sure! I sent your question to Carl and he said he'd pop over. You might ask in their discord too!

  • @badpotato
    @badpotato 20 днів тому

    I would also like to know, what kind of drug Carl Sverre is on...

  • @jonathancrowder3424
    @jonathancrowder3424 14 днів тому

    SQL + sync =? SynQL

  • @michaelscofield2652
    @michaelscofield2652 20 днів тому

    One more SQLite shilling video and I’m gone man

    • @aarondfrancis
      @aarondfrancis  20 днів тому +3

      That's ok! Teaching is not shilling. Learning is not shilling. I'm going to talk about things I find interesting and enjoy and I invite you to tune in or out as you see fit. No pressure to stick around!

    • @michaelscofield2652
      @michaelscofield2652 16 днів тому

      When you actively promote some mid company like Turso it becomes shilling for me.