PLF 2023
as the organisers put it
Live stream recording Unedited YouTube stream Languages for Multi-Device Collaborative Applications Due to ubiquitous connectivity and cheap availability of user devices from smartphones to desktops, applications supporting multi-device and collaborative use have become more common, and with the Corona pandemic this trend has tremendously accelerated. While most of the distributed applications that we see nowadays are cloud-based, avoiding the cloud can lead to privacy and performance benefits for users and operational and cost benefits for companies and developers. Following this idea, ...
who it's for
sync protocol engineers, frontend developers, distributed systems engineers, database engineers, research engineers, verification engineers, mobile app developers
topics
op-based CRDT append-only logs; Yjs integration and SyncedStore; Automerge extensions: move and undo; selective sync for multi-device apps; crypt tree capability model; verifiable computation for shared indices; Matrix-CRDT and Nostr-CRDT transport; Bloom-filter forgetting for causal histories; atomic transfer protocol for replica ids; LSM merge operators for CRDT storage; Propel and ConOpY verification techniques
| title | author | length |
|---|---|---|
| Keynote: Feeling the Local-First Elephant: A Roadmap, Hidden Gems, and New Puzzles... | Brooklyn Zelenka | 01h 15m |
A roadmap lays out a stack from identity and PKI up through portable compute and WASM, with working pieces like selective sync, an unstructured CRDT-backed… | ||
| Collaborative offline-first applications in Education | Annette Bieniusa, Christopher Thyssen | 31m |
A local‑first web app called Teens’ Labbook lets school groups read tasks, document experiments with text, photos, videos and spreadsheets, and share results… | ||
| Local-first: experiments & lessons learned building TypeCell | Yousef El-Dardiry | 33m |
TypeCell is a Notion-like, live-programming knowledge base built on Yjs that uses a reactive UI and lazy-loaded Yjs documents; SyncedStore bridges Yjs to… | ||
| Proposal: Versioned Collaborative Documents | Matthew Weidner | 34m |
Proposal defines versioned collaborative documents that combine Google-Docs live editing with git-style fork and merge workflows by treating each document as a… | ||
| Can local-first really scale at the edge? | Carlos Baquero | 32m |
Local‑first faces linear metadata blowup when many replicas interact; this work surveys concrete workarounds and prototypes. Causal histories + content or… | ||
| Local-first | Roland Kuhn, José Duarte | 26m |
Actyx explains seven years of running local‑first software in factories: devices (Raspberry Pi, tablets) keep single-writer logs replicated peer‑to‑peer… | ||
| Extending Automerge: Undo, Redo, and Move | Leo Stewen, Martin Kleppmann, Liangrun Da | 37m |
Extends Automerge with a implemented move operation and a novel undo/redo algorithm for multi‑valued registers, claiming move validity requires no cycle and no… | ||
| How to Enforce and Verify Invariants in Weakly Consistent Databases | Dina Borrego, Carla Ferreira, Nuno Preguiça | 22m |
Study shows how to preserve application invariants on weakly consistent, geo‑replicated stores by combining weak ops with targeted strong handling: uses… | ||
| Local-First in Practice: Learnings of building a high-performance, local-first mus... | Johannes Schickling | 21m |
Overtone is a high‑performance, local‑first music client built over two years that currently runs locally and aims to add sync; it uses Riffle and puts SQLite… | ||
| MVC, MVCC and Causal Trees | Victor Grishchenko | 25m |
Proposes concrete designs from Swarm.js and swarmdb prototypes and experiments showing CRDT metadata often exceeds payload by an order of magnitude and forces… | ||
| Mixed & Verified Consistency with Propel and ConOpY | Mirko Köhler, George Zakhour, Pascal Weisenburger, Guido Salvaneschi | 17m |
ConOpY is an object-oriented language that annotates replicated objects and methods with consistency levels and enforces them in the type system so programs… | ||
| nothing matches | ||