Jacpol'u neden açık kaynak yayınladık.
Her RUBIKLABS servisinin altındaki yetkilendirme motoru artık kamuya açık. Kendi izin katmanımızı neden açık yayınladığımızın hikâyesi.
- Yazar
- Halil Safa Sağlık
- Kategori
- Mühendislik
- Kelime
- 185
- Okuma
- 7 dk okuma
#Açık kaynak #Yetkilendirme
Jacpol iç bir paket olarak başladı. Yayına aldığımız her NestJS servisi onun arkasında oturuyor — roller, politikalar, kaynak-ölçekli erişim. Kapalı tutabilirdik. Tutmamayı seçtik.
Açık kaynak fedakârlık değil, bir disiplindir. Kamuya karşı savunmak zorunda olduğun bir kütüphane, sessiz borç biriktirmeyi bırakır. Daha temiz isimler alır. Daha keskin soyutlamalar alır. Yalnızca monorepo içinde anlam kazanan varsayımları kaybeder.
Üretimde çalıştırdığımız versiyon, artık herkesin okuyabildiği versiyondur. Taahhüt budur. "Temizlenmiş bir fork" ya da "kullandığımıza yakın bir kütüphane" değil — auth middleware'ımıza bir istek geldiğinde gerçekten izlediği kod yolu.
Kararın bize bir maliyeti oldu. Monorepo-özel bağlantıları çıkartmak, dokümantasyon sitesi yazmak ve test harness'ını katkıcıların lokalde çalıştırabileceği şekilde yeniden kurmak için üç hafta harcadık. Bu üç hafta, yapmadığımız ürün işi demek. Buna değdi.
Yayına aldıktan sonra değişen şey: her kod review hem yavaşladı hem iyileşti. Soru artık "bu çalışıyor mu?" değil, "salı günü bu diff'i bir yabancıya açıklamak ister miyim?" oldu. Cevap hayırsa, kod genellikle yanlıştı.
Açık kaynak seni hızlandırmaz. "Hızlı"nın ne demek olduğuna dair seni daha dürüst yapar. Takas bu. Gerçekten üretimde çalıştırdığınız bir kütüphane için düşünüyorsanız tavsiyemiz basit: yapın ve yavaşlamayla barışın. Biriktirmeyi bıraktığınız borç, kaybettiğiniz hızdan daha değerli.