HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

Your web app but good: Aaron Boodman (Local-First Conf)

Local-First Conf1 HN recommender · recommended in 1 month, 2024-2025
YouTube
8K views · 2 years ago · talk · dated

Aaron Boodman of Replicache asks why sync engines have not yet fixed web app complexity and what is missing for them to go mainstream. The talk lays out the ideas that led to the Zero sync engine.

Cited in sync-engine threads as the origin story for Zero and for hybrid local and remote queries.

Web developmentSoftware architecture & designDatabases & storage#local-first#zero#replicache#sync#webapps

4 comments from Hacker News

@ochiba2025 · in “Sync Engines Are the Future”

I think that is where sync engines come in that allow doing arbitrary hybrid queries (across local and remote data) and then keeping the results of those hybrid queries in sync on the client. This is one of the ideas that appears to be central to the genesis of Zero [1] ElectricSQL allows for a similar pattern and PowerSync is also working on this [2] [1] ▶ this video [2] link

CitesView on HN
@aboodman2025 · in “Sync Engines Are the Future”

Zero (zerosync.dev) uses transactional conflict resolution, which is what our prior product Replicache and Reflect both used. It is very similar to what multiplayer games have done for decades. It is described here: link It works really well and we and our customers have found it to be quite general. It allows you to run an arbitrary transaction on the sever side to decide what to do in case of conflicts. It is the software equivalent of git asking the user what to do. Zero asks your code what to do. But it asks it in the form of the question "please run the function named x with these inputs on the current backend db state". Which is a much more ergonomic way to ask it than "please do a 3-way merge between these three states". Conflict resolution is not the reason why there has not been a general-purpose sync engine. None of our customers have ~ever complained about conflict resolution. The reason there has not been a general-purpose sync engine is actually on the read side: - Previous sync engines really want you to sync all data. This is impractical for most apps. - Previous sync engines do not have practical approaches to permissions. These problems are being solved in next generation of sync engines. For more on this, I talk about it some here: ▶ this video

CitesView on HN
@trosterud2024 · in “Day Zero – Build Good Web Apps with the Zero Sync Engine”

Nice! Congratz It's insanely fast. And wholeheartedly recommend this wonderful talk about the thoughts that led to this: ▶ this video

Strongly recommendsView on HN
@aboodman2024 · in “Show HN: One – A new React framework unifying web, native and local-first”

Hi Joseph, There is a lot of debate about this in the community. People like pvh, adam wiggins, and johannes have all said they consider Replicache and Zero part of the local-first movement [1] and that they would be sad if we and other things like us weren't in it. I was even invited to speak at local-first conf, where we announced Zero last May. [2] I think in practice delivering on the local-first ideals is ultimately up to the app developer not the library. Like in practice every yjs app talks to its server over some bespoke protocol and is loaded over a URL. If that server goes away your yjs app is a brick. No less a brick than if your zero server goes away. Similarly although everyone likes to claim Linear as a local-first app, if the Linear server goes away your Linear app is a brick. Yeah you can export the data from IDB or whatever but you could do the same for Zero or any of these systems. That all said, for our part, we have recently tried to avoid claiming Zero and Replicache as local-first on our own sites to avoid this controversy [3]. I think we're building something really valuable that a lot of people are excited about. And I think we're making the right tradeoffs for the majority of software that most people use every day. So I don't really care too much if it qualifies as local-first (except insofar as I like hanging out with the local-first folks and would be sad to not get invited to the parties). I forgot to mention this to Nate when he showed me these m

CitesView on HN
React Helsinki February 20201:16:07

React Helsinki February 2020

Fraktio
42K views • 6 years ago
Scaling the Linear Sync Engine1:06:08

Scaling the Linear Sync Engine

Linear
37K views • 3 years ago
The past, present, and future of local-first - Martin Kleppmann (Local-First Conf)29:46

The past, present, and future of local-first - Martin Kleppmann (Local-First Conf)

Local-First Conf
17K views • 2 years ago
Nicholas Zakas: Scalable JavaScript Application Architecture52:23

Nicholas Zakas: Scalable JavaScript Application Architecture

YUI Library
68K views • 15 years ago
Hacker Way: Rethinking Web App Development at Facebook44:36

Hacker Way: Rethinking Web App Development at Facebook

Meta Developers
900K views • 12 years ago
Servo Architecture: Safety and Performance45:05

Servo Architecture: Safety and Performance

linux conf au 2017 - Hobart, Australia
12K views • 9 years ago
Cheng Lou - On the Spectrum of Abstraction at react-europe 201635:32

Cheng Lou - On the Spectrum of Abstraction at react-europe 2016

ReactEurope
63K views • 10 years ago
Servo: Building a Parallel Browser43:29

Servo: Building a Parallel Browser

Linux.conf.au 2015 -- Auckland, New Zealand
23K views • 11 years ago
React.js Conf 2016 - Ben Alpert - What Lies Ahead27:45

React.js Conf 2016 - Ben Alpert - What Lies Ahead

Meta Developers
50K views • 10 years ago
RailsConf 2011: Aaron Patterson, "Double Dream Hands: So Intense!"47:34

RailsConf 2011: Aaron Patterson, "Double Dream Hands: So Intense!"

O'Reilly
26K views • 15 years ago
Introduction to NoSQL • Martin Fowler • GOTO 201254:52

Introduction to NoSQL • Martin Fowler • GOTO 2012

GOTO Conferences
1M views • 13 years ago
Google I/O 2011: Writing Web Apps in Go51:12

Google I/O 2011: Writing Web Apps in Go

Google for Developers
135K views • 15 years ago
Keynote: What is a Component (and Why)? - Luke Wagner, Distinguished Engineer, Fastly29:51

Keynote: What is a Component (and Why)? - Luke Wagner, Distinguished Engineer, Fastly

The Linux Foundation
7K views • 3 years ago
Rust at speed — building a fast concurrent database52:54

Rust at speed — building a fast concurrent database

Jon Gjengset
225K views • 7 years ago
[JSConfUS 2013] Tom Occhino and Jordan Walke: JS Apps at Facebook18:55

[JSConfUS 2013] Tom Occhino and Jordan Walke: JS Apps at Facebook

JSConf
45K views • 13 years ago
Om Next - David Nolen46:18

Om Next - David Nolen

ClojureTV
44K views • 11 years ago
"Simple Made Easy" - Rich Hickey (2011)1:01:39

"Simple Made Easy" - Rich Hickey (2011)

Strange Loop Conference
219K views • 5 years ago
Nordic.js 2014 • Douglas Crockford - The Better Parts33:52

Nordic.js 2014 • Douglas Crockford - The Better Parts

Nordic.js
73K views • 12 years ago
Rich Hickey rants about HttpServletRequest in 1080p: Death By Specificity from Clojure Made Simple4:57

Rich Hickey rants about HttpServletRequest in 1080p: Death By Specificity from Clojure Made Simple

Fred Overflow
43K views • 6 years ago
Sky: An Experiment Writing Dart for Mobile (Dart Developer Summit 2015)27:19

Sky: An Experiment Writing Dart for Mobile (Dart Developer Summit 2015)

Google for Developers
108K views • 11 years ago