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!
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
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.
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
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!
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)?
Im working on turning my application into a local/mobile first PWA and always wondered how hard it would have been to roll my own solution to syncing offline and online state. Might see if sqlsync could help with that. sounds like just what i need tbh
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 - 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).
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!
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!
Right! He's excited about what he's doing and that's exciting to listen to
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!
I'm so glad you're enjoying it! I really love having these chats
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
Thank you! I'll add those
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.
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
You're kind to say so!
Sadly still single writer- no horizontal write scaling- the holy grail for SQLite.
Happy to see more SQLite coverage!
Finally an intro that is actually not annoying!!
I love that! Exactly what I'm looking for at the moment. Thanks for the great work!
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!
Absolutely loving all the SQLite content. 👏
yep, fantastic interview
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)?
Great interview!
This is very cool
Thanks Kent! There is sooo much going on in the SQLite world. What a blast
This sounds identical to Replicache as far as the ideas and APIs go (but implemented differently)
When would you choose SQLSync over ElectricSQL?
Im working on turning my application into a local/mobile first PWA and always wondered how hard it would have been to roll my own solution to syncing offline and online state. Might see if sqlsync could help with that. sounds like just what i need tbh
WebAssembly code within the db, that would be kinda sick if it can also work with transactions.
Me trying to listen to this on the plane: 😵 any thoughts on making podcast versions of these? Would be nice to have :)
Yes, I shall consider it! I think it's a great idea.
I am also create Native libSQL Native Extension for PHP, Turso Driver Laravel, and Turso Doctrine DBAL!
Heck yeah you are! You're doing great work
Can this be used peer to peer from browser to browser? Or does it need a server coordinator for two clients to sync?
As far as I understood it needs one central source of truth
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
I would *definitely* recommend laracasts.com. By far the best way to get up to speed!
@@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).
SQL + sync =? SynQL
Could this work with duckdb?
I'm not sure! I sent your question to Carl and he said he'd pop over. You might ask in their discord too!
I would also like to know, what kind of drug Carl Sverre is on...
One more SQLite shilling video and I’m gone man
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!
When you actively promote some mid company like Turso it becomes shilling for me.