惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
V
Visual Studio Blog
人人都是产品经理
人人都是产品经理
The GitHub Blog
The GitHub Blog
月光博客
月光博客
T
Tailwind CSS Blog
小众软件
小众软件
Y
Y Combinator Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Proofpoint News Feed
B
Blog RSS Feed
博客园 - 司徒正美
A
About on SuperTechFans
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 聂微东
Microsoft Security Blog
Microsoft Security Blog
Recent Announcements
Recent Announcements
博客园 - Franky
U
Unit 42
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Microsoft Azure Blog
Microsoft Azure Blog
T
The Blog of Author Tim Ferriss
GbyAI
GbyAI
Apple Machine Learning Research
Apple Machine Learning Research

Full Stack Radio

153: DHH – Omarchy and Designing Your Own OS on Arch Linux | Full Stack Radio | Episode 153 152: Ben Orenstein - How to Stand Out When Applying for a Job at a Small Company | Full Stack Radio | Episode 152 151: DHH – Building HEY with Hotwire | Full Stack Radio | Episode 151 150: Secret Screencasting Tips & Behind the Scenes of Tailwind CSS 2.0 | Full Stack Radio | Episode 150 149: Choosing a Payment Processor, Radical Icons & W3C Hype | Full Stack Radio | Episode 149 148: Accessible Focus Styles, Tailwind Labs on YouTube, and Secret Projects | Full Stack Radio | Episode 148 147: Surviving GitHub Issues, the Statamic 3 Launch Aftermath, Tailwind 1.8, and Headless UI | Full Stack Radio | Episode 147 146: Launching Statamic 3, GitHub Sponsors, Tailwind CSS v1.7, and Preparing for Laracon | Full Stack Radio | Episode 146 145: Statamic 3.0 and Tailwind CSS 2.0 | Full Stack Radio | Episode 145 144: Gary Bernhardt - TypeScript and Testing | Full Stack Radio | Episode 144 143: Rich Harris - Svelte and Defending the Modern Web | Full Stack Radio | Episode 143 142: Jason Cohen - Learning to Hire and Manage a Team | Full Stack Radio | Episode 142 141: Jason Fried - Running the Tailwind Business on Basecamp | Full Stack Radio | Episode 141 140: Evan You - Reimagining the Modern Dev Server with Vite | Full Stack Radio | Episode 140 139: Alex DeBrie - DynamoDB for Relational Database Diehards | Full Stack Radio | Episode 139 138: Tom Preston-Werner - Building Full-Stack JS Apps with Redwood.js | Full Stack Radio | Episode 138 137: Tim Neutkens - Continuing to Innovate with Next.js 9.3 | Full Stack Radio | Episode 137 136: Michael Chan - React Is Not a Rails Competitor | Full Stack Radio | Episode 136 135: Lessons Learned Building Tailwind UI | Full Stack Radio | Episode 135 134: Mark Dalgleish - You Should Be Using Layout Components | Full Stack Radio | Episode 134 133: Sam Selikoff - Building Production-Ready SPAs Fast with Mirage.js | Full Stack Radio | Episode 133 132: Caleb Porzio - Just Enough JavaScript with Alpine.js | Full Stack Radio | Episode 132 131: Ryan Singer - How Basecamp Builds Software | Full Stack Radio | Episode 131 130: David Khourshid - Building Better UI Components with State Machines | Full Stack Radio | Episode 130 129: Evan You - What's Coming in Vue.js 3.0 | Full Stack Radio | Episode 129 128: Alasdair Monk - Scaling CSS at Heroku with Utility Classes | Full Stack Radio | Episode 128 127: Jonathan Reinink - Building Modern Monoliths with Inertia.js | Full Stack Radio | Episode 127 125: Rob Walling - Choosing the Right Product Idea | Full Stack Radio | Episode 125 124: Leslie Cohn-Wein & Rafael Conde - Designing the User Interface at Netlify | Full Stack Radio | Episode 124 123: Ian Landsman - Marketing and Positioning a New Tailwind CSS Product | Full Stack Radio | Episode 123
126: James Long - Building Distributed Local-First JavaSc...
Adam Wathan · 2019-10-23 · via Full Stack Radio

In this episode, Adam talks to James Long (creator of Prettier) about building Actual, a local-first Electron application with no central database that syncs data peer-to-peer.

Show Notes

Topics include:

  • How do you keep data synchronized between two different clients when all of the data is stored locally instead of in the cloud?
  • Understanding conflict-free replicated data types and how they help when building distributed applications
  • Diving deep into how messages are replayed across clients when network access becomes available to achieve consistent state
  • Using a Merkle tree to efficiently compare the message store from two clients to know which messages need to be synchronized
  • Considerations you need to make when structuring your data to enable eventual consistency
  • What it might look like to move an app like Actual to an offline-first web app where you can't use things like SQLite

Sponsors:

Links:

What is Full Stack Radio?

A podcast for developers interested in building great software products. Every episode, Adam Wathan is joined by a guest to talk about everything from product design and user experience to unit testing and system administration.