Local-first yazılım nedir? Bir aile ve iki telefonla anlatım
Havenfold ekibi ·

Local-first yazılım, verinizin asıl kopyasını kendi cihazlarınızda tutan ve ağı verinin yaşadığı yer olarak değil, eşitleme yolu olarak kullanan yazılımdır. İnternet yokken çalışmalı, cihazlarınız arasında eşitlenmeli, birlikte çalışmaya izin vermeli, arkasındaki şirket kapansa bile işlemeye devam etmeli ve verinizi gizli ve sizin denetiminizde tutmalıdır.
Bu yazı fikri bir aile ve iki telefonla anlatıyor, kavramı ortaya koyan makalenin ideallerini sıralıyor ve Havenfold'un her birinde nerede durduğunu, henüz çözemediklerini de saklamadan gösteriyor. Havenfold pre-alpha aşamasında: gerçek verinizle kullanmayın.
Terim nereden geliyor?
"Local-first software" adını, araştırma laboratuvarı Ink & Switch'ten Martin Kleppmann, Adam Wiggins, Peter van Hardenberg ve Mark McGranaghan'ın 2019 tarihli makalesi koydu. Makalenin adı "Local-first software: You own your data, in spite of the cloud", yani "Local-first yazılım: buluta rağmen verinin sahibi sizsiniz". Savları şuydu: Bulut uygulamaları birlikte çalışmayı kolaylaştırdı ama sahipliği elimizden aldı. Belgeleriniz başkasının sunucusunda duruyor; hizmet değişir ya da kapanırsa emeğiniz de onunla gider.
Makale, local-first yazılımın karşılaması gereken idealleri sıraladı:
- Hızlı: işlemler bir sunucuyu beklemeden yanıt verir.
- Çok cihazlı: veri kişinin cihazları arasında eşitlenir.
- Çevrimdışı: ağ yokken okuyup yazabilirsiniz.
- Birlikte çalışma: birkaç kişi aynı veri üzerinde çalışabilir.
- Uzun ömür: yazılımı yapan şirket faaliyetini durdursa bile veri kullanılabilir kalır.
- Gizlilik: uçtan uca şifreleme veriyi korur.
- Kullanıcı denetimi: şirket, verinize nasıl erişip onu nasıl kullanacağınızı kısıtlayamaz.
Bir aile, iki telefon
Alex ile Maya'nın ortak bir aile defteri tuttuğunu düşünün; bu adlar Havenfold'un tanıtımındaki iki örnek telefonun adları. Defterde Wi-Fi şifresi, bir diş randevusu ve kombinin bakım tarihi var.
Tipik bir bulut uygulamasında Alex'in notu önce bir şirketin sunucusuna gider, Maya'nın telefonu da onu oradan alır. Sunucu çökerse, şirket kapanırsa ya da Alex'in hesabı kilitlenirse not ulaşılmaz olur; oysa Alex onu kendi telefonunda yazmıştı.
Local-first bir tasarımda Alex'in notu önce kendi telefonuna yazılır. Sonra şifreli olarak Maya'nın telefonuna gider; ya doğrudan ya da onu okuyamayan bir yardımcı üzerinden. İki telefon da çevrimdışıysa her biri defterin son gördüğü hâline sahiptir. Yeniden bağlandıklarında değişiklikleri birleşir; kimse hangi sürümün kazanacağını elle seçmeden ikisinde de aynı defter oluşur.
Zor olan bu son adım. İki cihaz ayrıyken aynı veriyi değiştirdiğinde, değişiklikler hangi sırayla gelirse gelsin her cihazda aynı sonucu veren bir birleştirme kuralına ihtiyaç vardır.
Havenfold ideallere nasıl oturuyor?
Havenfold, bir ailenin ya da küçük bir işletmenin zaten sahip olduğu cihazları, hesap gerektirmeyen ve merkezi olmayan, uçtan uca şifreli kendi bulutlarına çevirmek için geliştirilen açık kaynak bir proje. İlkelerinden biri bunu doğrudan söylüyor: veri yerinde kalır, bulut yalnız isteğe bağlı bir hızlandırıcıdır. Her ideale göre durumu şöyle:
- Hızlı ve çevrimdışı: Ortak veri her cihazdaki koleksiyonlarda durur. Her değişiklik şifreli, imzalı bir işlemdir; cihazlar işlemleri alan alan birleştirir ve hangi sırayla gelirse gelsin aynı duruma ulaşır.
- Çok cihazlı: Projenin tanıtımı, gerçek çekirdeği çalıştıran iki telefonu hesap olmadan ayrı süreçler olarak başlatıyor ve bir telefonda yazılan notun öbüründe göründüğünü gösteriyor. Tanıtım tek bir makinede, yerel bir test ağında çalışır; hiçbir şey o makineden çıkmaz.
- Birlikte çalışma: Bir koleksiyonu kimin okuyup yazabileceği ailenin imzalı üyelik kaydında yazılıdır. Biri aileden ayrılınca yeni bir anahtar dönemi başlar ve sonraki yazmaları dışarıda kalır.
- Uzun ömür: Aile, hep açık duran yedek bir makineyi Aile Kutusu olarak kullanabilir. Tanıtımda iki telefon farklı anlarda kapatılıyor; sonradan açılan telefon notu kutudan alıyor. Havenfold'un ilkeleri ayrıca kilitlenme olmamasını ve açık biçimde dışa aktarmayı söz veriyor; depoda, Havenfold kurmadan dışa aktarma dosyasını açan bir araç da var.
- Gizlilik: İçerik uçtan uca şifreli; kutu, okuyamadığı mühürlü kopyaları tutar. Trafiğin üst verisini yine de görür ve proje bunu açıkça yazar.
- Kullanıcı denetimi: Hesap yok; kimlik cihazda durur. Çekirdek açık kaynak ve proje, yayımlanan kodun daha kısıtlayıcı bir lisansa geçmeyeceğini taahhüt ediyor.
Henüz çözülmeyenler
Local-first bir yön, işaretlenip geçilecek bir kutu değil; Havenfold bu yolun başında:
- Pre-alpha: gerçek veriyle kullanmayın. İlk etiketli sürümden önce biçimler değişebilir.
- Gerçek evler arasında ağ: Telefonlar ve kutu arasındaki ağ katmanı var, ama telefonlarda hâlâ deneysel bir bayrağın arkasında. README bir ürün uygulamasında "ilk iki telefonlu denemeden" söz ediyor; gerçek ev ağlarında deneme hâlâ eksik.
- Çevrimdışı teslim yolları: Bir cihazın, kapalıyken kendisine gönderilen mesajları sonradan almasını sağlayan yolların bir kısmı durum tablosunda eksik olarak listeleniyor; bu yollardan biri olan posta kutusu henüz depoda değil.
- Gerçek kullanım: Havenfold henüz gerçek bir evde çalışmadı ve bağımsız bir güvenlik denetiminden geçmedi.
Özet
- Local-first yazılım verinin asıl kopyasını sizin cihazlarınızda tutar ve ağı eşitleme için kullanır.
- Terim Ink & Switch'in 2019 makalesinden geliyor. Makalenin idealleri hız, çok cihaz, çevrimdışı çalışma, birlikte çalışma, uzun ömür, gizlilik ve kullanıcı denetimi.
- Asıl zorluk, ayrı yapılan değişiklikleri her cihazda aynı sonucu verecek biçimde birleştirmek.
- Havenfold imzalı, şifreli işlemleri alan alan birleştirir, çevrimdışı cihazlar arasında köprü için Aile Kutusu kullanır ve hesap istemez.
- Havenfold pre-alpha aşamasında: telefon ağı deneysel, bazı çevrimdışı yollar eksik ve gerçek veri için henüz uygun değil.
Havenfold pre-alpha aşamasında: gerçek verilerle kullanmayın. Henüz gerçek bir evde çalışmadı ve bağımsız bir güvenlik denetiminden geçmedi.
Kaynaklar
- Kleppmann, Wiggins, van Hardenberg, McGranaghan, "Local-first software: You own your data, in spite of the cloud", Ink & Switch, 2019 (İngilizce)
- Vikipedi: Local-first software (İngilizce)
- Havenfold BENİOKU (Türkçe)
- Havenfold README: durum, nasıl çalışır ve tanıtım (İngilizce)
- Havenfold genel bakış: ilkeler (İngilizce)