§ Platform / İş birliği
Çok oyunculu bilim, kendi GPU'larınızda.
Bir iş akışı üzerinde, paylaşılan bir belgede çalışır gibi çalışın — canlı imleçler, birlikte düzenleme, yorumlar, ekibinizin canlı izlediği çalıştırmalar — ama mimariyi değiştiren tek bir farkla: altta bir bulut çalışma ortamı yok. Hesaplama her katılımcının kendi cihazında kalır; sunucu yalnızca düzenlemeleri sıraya koyar. Ve hiçbiri işinizi rehin tutmaz: çevrimdışı da olsanız, sunucu kapalı da olsa, size ait olan her şey çalışmaya devam eder.
Tek tuval, birçok imleç, sıfır yükleme
Bir oturum açtığınızda ekip arkadaşlarınız Studio'nun aynı tuvalinde beliriverir: adlandırılmış canlı imleçler, seçimler, her kişinin rolünü gösteren ve baktığı yere tek tıkla atlayabildiğiniz bir katılımcı listesi. Katılım bilgisi bilinçli olarak geçicidir — imleçler ve görünümler yayınlanır, asla saklanmaz, asla belgenin parçası olmaz. Geri alma bile kişiye özeldir: Cmd+Z sizin son düzenlemenizi geri alır, bir başkasınınkini asla.
Hattan geçen şey veri değil, koordinasyondur. Düzenlemeler, katılım bilgisi ve bir çalıştırmanın ilerleyişi oturumla taşınır; veri kümeleri, kimlik bilgileri ve hesaplamanın kendisi local-first ilkesinin koyduğu yerde — her cihazın kendisinde — kalır. Scellis'te birlikte çalışmayı farklı kılan tersine çevirme budur: bulut çalışma ortamını saran barındırılmış bir alan değil, katılımcıların zaten sahip olduğu makinelerin üzerinde ince bir koordinasyon katmanı.
Çalıştırmayı birlikte izleyin
| Ne | Diğerlerine canlı mı | Sonrasında |
|---|---|---|
| Belge düzenlemeleri | denetlenir, sıralanır, yayınlanır | kalıcı — yerel kuyruk ve commit edilmiş sürümler |
| Katılım — imleç, seçim, görünüm | evet, geçici | atılır; asla saklanmaz |
| Çalıştırmanın ilerleyişi — eğriler, durum | evet, canlı akar | atılır; atıf commit edilmiş çalıştırmaya verilir |
| Notlar ve yorumlar | evet, oturumda canlı | belgeyle birlikte gider — bir sonucun ne olduğunu değiştirmeden |
| Veri kümeleri · kimlik bilgileri · hesaplama | oturumdan asla geçmez | her katılımcının cihazında kalır |
Eksik olan, yapısal olarak eksiktir: oturumda ham veri ya da gizli anahtarlar için kanal yoktur — koordinatör iş akışınızı sıraya koyar, asla çalıştırmaz.
Eğitimi başlattığınızda oturumdaki herkes olanları izler: dolan kayıp eğrisi, çalıştırmanın ilerleyişi, güncellenen çıktı — çalıştıran kişinin kendi GPU'sundan herkese canlı akar. Sonradan katılan biri eğrinin tamamını ilk adımdan itibaren alır, asla bir parçasını değil. Kimin ne yapabileceği de rolleri izler: düzenleyiciler paylaşılan bir çalıştırmayı başlatabilir, duraklatabilir, iptal edebilir; izleyiciler ve yorumcular kontrolleri devre dışı ve gerekçesi yazılı biçimde izler. Sonrasında çalıştırma, geçmişiyle birlikte rafınıza düşer.
Dürüstlük mühendisliğin içindedir. İzleyen biri, biten bir çalıştırmayı ortadan kaybolan bir makineden her zaman ayırt edebilir: kalp atışı kesildiğinde eğri, ilerleme taklidi yapmak yerine koptu olarak işaretlenir. Ve burada olan yalnızca izlemektir — bir çalıştırmanın ilerleyişini paylaşmak, işin kendisini asla taşımaz. Hesaplamanın parçalarını eşlerin üstlenmesini istediğinizde bu, dağıtık hesaplamadır: kendi güven düzeyleri olan ayrı ve açık bir karardır.
Her an geçerli bir program olan taslak
Bir iş akışı düzyazı değildir; tipli ve çalıştırılabilir bir çizgedir — ve bu, paylaşılan belgeler için alışılmış cevabı eler. Standart mekanizma, herkesin aynı anda yaptığı düzenlemelerin yakınsamasını garanti eder: sonunda hepiniz aynı dosyaya varırsınız. Ama döngü içeren ya da tipleri uyuşmayan bir bağlantı taşıyan bir programda buluşmak da yakınsamadır. Scellis bunun yerine denetler. Önerilen her düzenleme, çizgenin uyması gereken kurallara karşı sınanır — düzenlediğiniz şey hâlâ var mı, döngü oluşuyor mu, bağlantılar uyuyor mu, sürümler sabit mi — ve ancak ondan sonra sırada tek bir kanonik konum alıp herkese gider.
Kendi düzenlemenizin anında yerleştiğini görürsünüz; ardından kanonik sıranın üzerine yeniden uygulanır — tuval anında hissettirir, belge ise hiçbir zaman bozuk bir durumdan geçmez. Sunucunun sahip olduğu tek şey de bu sıradır: bir sürümün kimliğini, tek başına ve çevrimdışı commit eden biri birebir aynı şekilde hesaplar — canlı oturum düzenlemeleri sıraya koyar, asla gerçeğin kaynağı olmaz. Karakter karakter birleştirmenin hayatta kaldığı tek yer serbest metin alanlarıdır: düzyazı birleştirme ister, programlar geçerlilik.
Taslak üzerinde birlikte çalışırsınız; commit'e atıf verirsiniz
Canlı oturum birlikte düşünmek içindir ve bilinçli olarak geçicidir: taslağın akışkanlığı, imleçler, süren bir çalıştırmanın eğrisi — hiçbiri bir sürümün ne olduğuna dahil değildir. Commit, akışkan taslağın sabit bir referansa dönüştüğü andır; kimlik commit'te başlar ve bu yüzden bir makaledeki bağlantı, hâlâ hareket eden bir taslağa asla asılı kalamaz.
İki paylaşım bağlantısı türü bu ayrımı taşır. Oturum bağlantısı birini canlı uca alır: oturum açmış, rolüyle sınırlı, düzenleyebilir — hesabı olmayan bir ziyaretçi bile kime ait olduğu belli, kalıcı bir adla düzenler. Anlık görüntü bağlantısı ise donmuş baytları teslim eder: giriş yok, değişmez, bir makaleye güvenle konur. Hangi kapıyı açtığınız, hangi sözü verdiğinizi belirler — paylaşım ekip ölçeğinde yönetişim gerektirdiğinde ise roller ve politikalar Workspace'lerde durur.
Tartışma doğrudan işin üzerinde geçer
Notlar düşüncenin geçtiği yere tutunur — bir bloğa, bir bağlantıya, tuvalin bir bölgesine ya da belgenin kendisine — piksel koordinatlarıyla değil, işaret ettikleri şeyle. Belgeyle birlikte gider, onunla sürümlenir, ama bir sürümün ne olduğunun dışında kalır: bir yorum, bir sonucun anlamını asla değiştirmez. Notun işaret ettiği şey sonradan silinirse not, rehberli yeniden tutturma sunan ayrık bir iğneye dönüşür — yazılan asla kaybolmaz. Yorum dizileri etiketleme ve “çözüldü” işareti taşır; canlı oturumda bir yorum, yazıldığı anda herkeste belirir.
Yayımladığınız her şey kamusal karşılığını da alır: herhangi bir okura açık, düzenleme yetkisi gerektirmeyen, hata bildirimi biçiminde bir tartışma — bir sorunla karşılaşan kişi onu, yazarın ve gelecekteki her kullanıcının göreceği yere yazar. Marketplace'i çift yönlü yapan şeylerden biri de budur. Oturumların, rollerin ve bağlantıların tam akışı canlı iş birliği rehberinde anlatılır.
Yalnız çalışma asla kırılmaz — şansla değil, tasarımla
| Durum | Oturum | İşiniz |
|---|---|---|
| Yalnız, sunucu kapalı | kaybedilecek oturum yok | her şey çalışır, çevrimdışı |
| Canlı oturum koordinatörü kaybeder | sıralama kontrollü biçimde duraklar | düzenlemeye devam edersiniz; yerel kuyruk tutar |
| Çevrimdışı düzenlemeden sonra dönüş | açığı kapat, sonra yeniden uygula | basit çakışmalar, kime ait olduğu belli biçimde kendiliğinden çözülür |
| Gerçek bir yapısal çakışma | görünür biçimde yükseltilir | rehberli üç yönlü birleştirme — asla sessiz üstüne yazma |
| Düzenlemeniz silinmiş bir şeyi hedefliyor | düzenleme bir kenara alınır | sahipsiz kalan düzenlemeler ayrı bir tepside toplanır; yeniden bağlamak için rehber eşlik eder — hiçbir şey kaybolmaz |
Hata durumları tasarlanmış ve test edilmiş davranıştır, hata ekranı değil — her satır iş birliğinin verdiği sözün parçasıdır.
Canlı iş birliği, üstte duran bir katmandır; onu kaldırın, her şey yine çalışır. Bu bir yedek çözüm değil, mimarinin kuralıdır: her iş birliği özelliği, tamamen çalışan yalnız ve çevrimdışı bir deneyime inebilmelidir ve bunu otomatik bir denetim koruma altında tutar. Oturum koordinatörü bir önbellektir, gerçek değil — kalıcılık cihazınızın kendi kuyruğunda ve commit edilmiş sürümlerdedir — ve hesaplayan, yazan ve commit eden yolların dışında durduğu doğrulanabilir.
Canlı bir oturum koordinatörünü gerçekten kaybettiğinde davranış, rol yapmak değil kontrollü bir duraklamadır: herkes tam yerel kalıcılıkla düzenlemeye devam eder, paylaşılan sıralama durur, yeniden bağlananlar açığı kapatır. Basit çakışmalar, kime ait olduğu belli biçimde kendiliğinden çözülür; sert yapısal bir çakışma rehberli üç yönlü birleştirmeye taşınır — asla sessiz bir “son yazan kazanır”, asla kaybolan iş. Ücretli bir planın satın aldığı da tam olarak budur: barındırılan iş birliği kapasitesi bir hizmettir — hesaplama asla.