Bu neden önemli?
Bugün bir platformdan ayrılınca orada ürettiğin her şeyi geride bırakıyorsun. AT Protocol, verini yanında götürebildiğin ve uygulamaların birbirinin verisini okuyabildiği bir web öneriyor.
Sorun: Verin başkasının kutusunda
Stack Overflow’a cevap yazıyorsun, GitHub’a hata bildiriyorsun, bir sosyal ağda paylaşım yapıyorsun. Hepsi o şirketin veritabanında duruyor. Şirket kurallarını değiştirirse, reklamı artırırsa ya da kapanırsa, ürettiğin her şey de gidiyor. Ayrılmak istesen bile geride bırakmak zorundasın.
Syntax’a konuk olan Dan Abramov (React ve Redux’tan tanıyor olabilirsin, bir süre Bluesky’da çalıştı) AT Protocol’ü bu sorunun çözümü olarak anlatıyor.
Temel fikir: Herkese bir klasör
AT Protocol’ü (kısaca atproto) şöyle düşünebilirsin: İnternetteki herkesin bir klasörü var. Hangi uygulamayı kullanırsan kullan, ürettiğin içerik bu klasöre JSON dosyaları olarak yazılıyor. Uygulamalar ise bu klasörleri okuyup gösteren birer pencere.
Örneğin Bluesky’da birini takip ettiğinde, uygulama senin klasörüne “şu kişiyi takip ediyorum” diyen küçük bir kayıt ekliyor. Bir gönderiyi beğendiğinde de öyle.
Önemli bir detay: Bluesky bu protokolün sadece bir uygulaması. Protokolün kendisi sosyal medyaya özel değil.
Üç parça
1. Kimlik
Her kullanıcının değişmeyen bir kimliği var (buna DID deniyor). Bu kimliğe bağlı bir belge üç şey söylüyor:
- Kullanıcı adın. Bu bir alan adı olabilir ve istediğin zaman değiştirebilirsin.
- Verilerin şu an nerede duruyor.
- Yaptıklarının gerçekten senden geldiğini doğrulamaya yarayan şifreleme anahtarların.
Böylece alan adını ya da barındırma şirketini değiştirsen bile kimliğin aynı kalıyor.
2. Kişisel veri sunucusu (PDS)
Klasörün burada duruyor. İster büyük bir şirketin sunucusu, ister kendi sunucun olsun. Protokolün hedefi, eski sunucu kapansa bile hesabını başka bir sunucuya taşıyabilmen.
3. Uygulamalar ve akış
Her uygulamanın binlerce sunucuyu tek tek dolaşması çok yavaş olurdu. Onun yerine relay denen servisler tüm değişiklikleri tek bir akışta topluyor. Uygulamalar bu akışı dinleyip kendilerini ilgilendiren kayıtları kendi veritabanlarına alıyor. Sıralama algoritmaları, arama ve spam filtresi bu uygulama katmanında yapılıyor.
Herkes kendi veri biçimini tanımlıyor
Eski açık protokollerin çoğu “bir gönderi şöyle olmalı” diye her şeyi baştan belirlemeye çalıştı. Sonra yeni özellikler gerekince uygulamalar protokolden uzaklaştı.
AT Protocol farklı bir yol izliyor: Lexicon adlı bir şema dili var. Her uygulama kendi veri türünü tanımlıyor, TypeScript tiplerine benzer şekilde. İsteyen uygulamalar aynı şemada buluşabiliyor. Örneğin birkaç blog platformu, yazıların birbirleri arasında görünebilmesi için Standard.site adında ortak bir şema üzerinde anlaştı. Bu, bir komitenin değil, geliştiricilerin kendi aralarında kurduğu bir standart.
Bugün neler var?
- Bluesky: Twitter’a benzeyen sosyal ağ.
- Tangled: GitHub’a benzeyen, AT Protocol üzerinde kod paylaşım platformu.
- Leaflet gibi blog uygulamaları.
- pds.ls: Herhangi bir kullanıcının klasöründe hangi kayıtların durduğunu gezebildiğin bir araç.
Bir not: Şu an protokoldeki veriler herkese açık. Kapalı gruplar gibi özel alanlar için çalışmalar sürüyor ama henüz hazır değil.
Düşün
- Bugün kullandığın hangi uygulamada, ayrılırsan kaybetmekten korktuğun bir içerik var?
- Tüm verin herkese açık bir klasördeyse, bunun iyi ve kötü tarafları neler olabilir?
Bu yazıdaki araçlar Araç Kutusu'nda: pds.ls