#baby $BABY
竹竹最近盯著Babylon Genesis的架構看,Epoching、Checkpointing、BTC Staking、Finality各自獨立成一個模組,這種分工方式竹竹一直覺得很聰明,每個模組只顧好自己那塊,出事的時候不用整個系統一起陪葬,定位問題也快很多。

不過前幾天突然想到一個之前沒細想的角度,模組拆得越細,是不是代表模組「之間」的關係,反而變成了新的隱藏成本?

這感覺有點像分工精細的團隊,每個人各自負責一塊,效率確實高。但只要有一個人要換工作方式,其他人多少都得跟著調整步調,不然銜接就會出問題。單體架構就像一人包辦所有事,累是累,但至少不用煩惱跟別人對不對得上;模組化把這個累甩掉了,卻換來一種更難察覺、卻持續存在的協調成本。

竹竹覺得這種成本在協議剛起步時幾乎感覺不到,模組數量少、更新也不頻繁,大家喬一喬就過去了。但如果系統跑得夠久、功能不斷疊加,每個模組各自演化出不同版本,讓所有模組還能順利溝通這件事,本身就可能悄悄變成一種技術債。不是程式碼品質的問題,而是維持模組間協調的複雜度,會隨時間慢慢往上堆。很多大型系統最後出問題,往往不是哪個模組壞了,而是死於這種版本兜不起來的困境。

這個看法竹竹目前沒辦法完全驗證,畢竟Babylon還算年輕,模組升級的實際案例也還不夠多。但竹竹認為,這是個值得現在就開始留意的訊號,不是看又推出了什麼新功能,而是看每次模組要一起升級時,需要花多久時間、牽涉多少團隊。如果這個時間越拉越長,可能就代表這筆技術債正在慢慢浮現。
@BabylonLabs_io

竹竹出個互動小提問:技術債該現在關注嗎?
A. 該
B. 不用
C. 之後再說
1 يوم (أيام) مُتبقية