На первый взгляд идея local-first приложений кажется идеальной: данные всегда под рукой, приложения мгновенно загружаются, конфиденциальность гарантируется самим фактом отсутствия постоянного обмена с сервером. Но реальность оказалась жёстче: большинство таких проектов не выходят за рамки экспериментов или нишевых решений. Статья Марко Бамбини Why haven't local-first apps become popular? разбирает главные барьеры. Попробуем углубиться в детали и посмотреть, как эта проблема выглядит глазами инженера. 🕒 Неопределённость порядка событий
В распределённой системе два устройства могут менять одно и то же значение параллельно. Например: телефон офлайн устанавливает x = 3, ноутбук — x = 5. Какой результат считать “правильным”? Без глобальных часов это становится нетривиальной задачей. Решение — Hybrid Logical Clocks (HLC), которые совмещают физическое время с логическим счётчиком, сохраняя причинно-следственные связи. ⚔️ Конфликты изменений
Даже при правильной хронологии остаётся риск переза