Disque 1.0 RC1 is out!

Salvatore Sanfilippo

Disque 1.0 RC1 釋出!

今天我很高興宣布,Disque 1.0 的首個候選發行版已經釋出。

如果你還不知道 Disque 是什麼,最好的起點是到 http://github.com/antirez/disque 上的 Github 專案頁面閱讀 README。

Disque 終究只是一套軟體,因此它的實質價值可能為零,也可能更高,取決於它為使用者帶來多少實用價值。但對我而言,它有一種超越其物質本身的巨大價值。那就是設計並實作出自己在乎的事物的價值。這就是程式設計的魔法:原本一無所有之處,如今卻有了能夠運作、可供他人分析、執行與使用的東西。

分散式系統是一個美好的領域。承蒙 Redis,以及那些以各種方式指導過我的人,我得以接觸分散式系統。我想把這份熱愛轉化為具體的成果。一個全新、小巧的系統,從零開始設計,不帶成見,也不過度參照其他類似系統的作法。與 Redis 共事的經驗讓我發現,訊息代理是個非常有趣的主題,而且在某種程度上,它們是應用分散式系統概念的絕佳主題。我甚至認為訊息代理可以是有趣又令人興奮的。因此我試著設計一套全新的訊息佇列,而 Disque 就是成果。

Disque 的設計目標是提供具備良好使用者體驗的系統:在訊息傳遞的脈絡下提供特定保證,這些保證易於理解與推論,並提供極致的維運簡易性。RC1 提供了基礎,但仍有更多工作要做。首先,我希望 Disque 能由 Aphyr 透過 Jepsen 進行深入測試。由於 Disque 是一套提供特定可測試保證的系統,若未通過某些測試,就代表可直接對應到需要修復的錯誤,這意味著最終能得到一套更好的系統。

在維運層面,則需要在真實世界中進行測試。依我淺見,AP 與訊息佇列是實現維運強健性的絕佳組合。然而我並不抱持初版就盡善盡美的幻想,因此要 *真正* 達到我所追求的維運簡易性,恐怕還需要數個月(甚至數年?)的反覆迭代。此外,這個 RC1 在最近幾週經過大幅修改,我預期它仍會有數量不少的錯誤。

從打造一套有趣又令人興奮的系統的角度來看,我試著打造出簡潔小巧的 API,讓使用者不必去思考 *這個特定* 實作的細節,而是更普遍地思考他們所面對的訊息傳遞問題。Disque 也具備一系列內省能力,應有助於使其成為一套非黑箱、真正可除錯與可觀測的系統。

即使新程式碼與新想法仍有諸多限制,這個 RC 版本仍是重要的一大步,我很高興 Disque 沒有淪為我們程式設計師那些有始無終的業餘專案之一。

過去幾個月來,在鑽研 Disque 並摸索如何形塑它的過程中,我並不孤單,我獲得了以下人士的協助:He Sun(何蓀)、Damian Janowski(達米安·亞諾夫斯基)、Josiah Carlson(喬賽亞·卡爾森)、Michel Martens(米歇爾·馬騰斯)、Jacques Chester(賈克·徹斯特)、Kyle Kingsbury(凱爾·金斯伯里)、Mark Paluch(馬克·帕盧赫)、Philipp Krenn(菲利普·克倫)、Justin Case(賈斯汀·凱斯)、Nathan Fritz(內森·弗里茨)、Marcos Nils(馬可斯·尼爾斯)、Jasper Louis Andersen(賈斯珀·路易·安德森)、Vojtech Vitek(沃伊捷赫·維泰克)、Renato C.(雷納托·C.)、Sebastian Waisbrot(賽巴斯汀·魏斯布羅特)、Redis Labs 與 Pivotal,以及可能還有更多我此刻未能想起的人。感謝你們的協助。

RC1 已在 Disque 的 Github 儲存庫中標上標籤。祝大家玩得愉快!

原文由 Salvatore Sanfilippo 發布

本文章由 muse-spark-1.2-contributor 進行翻譯