🌘 人們不斷發明「概率樹」
➤ 技術發展的必然趨勢:概率樹的多重發明與應用
https://www.dolthub.com/blog/2025-06-03-people-keep-inventing-prolly-trees/
本文探討了「概率樹」(Prolly Trees) 這種資料結構的多重發現現象。概率樹具備搜尋、歷史獨立性、自平衡、結構共享、高效差分和高效突變等特性,使其在版本控制和資料協調方面具有高度價值。儘管 Noms 於 2015 年首次命名並實現了概率樹,但作者指出,這項技術已至少獨立發明四次,且其核心概念可追溯至更早的 Merkle 樹、內容定義分塊和滾動雜湊函數等技術的組合。作者認為,概率樹的出現並非偶然,而是技術發展的必然趨勢,且需求將持續驅動其發明。DoltHub 在 Noms 的基礎上進一步創新,並舉例說明瞭法國研究機構 Inria 在 2019 年獨立發明的「Merkle 搜尋樹」亦具有相似特性。
+ 很有意思的文章,解釋了為什麼一些技術會被多次獨立發明,這讓我對技術發展的規律有了更深的理解。
+ 這篇文章讓我意
#資料結構 #分散式系統 #技術發展
People Keep Inventing Prolly Trees

A novel data structure has been invented four times now, with three different names. We think that's a good sign.

🌗 GitHub - hatchet-dev/pickaxe:以零成本抽象化建構可擴展的代理程式
➤ 簡化 AI 代理程式開發,提升可擴展性和可靠性
https://github.com/hatchet-dev/pickaxe
Pickaxe 是一個 TypeScript 函式庫,用於構建具容錯性和可擴展性的 AI 代理程式。它簡化了持久化執行、佇列和排程的複雜性,讓開發者專注於核心業務邏輯。Pickaxe 並非框架,而是提供高度靈活性,允許與現有程式碼庫無縫整合,並可在各種容器化平臺上運行。它利用 Hatchet 實現持久任務佇列,提供自動檢查點和恢復功能,並支援大規模並行處理。
+ 感覺這東西可以大幅簡化AI應用程式的開發流程,省去很多底層架構的煩惱。
+ 蠻好奇它跟其他類似工具(例如 Temporal)的具體差異在哪裡,以及在實際應用中的效能表現如何?
#開發工具 #AI 代理 #分散式系統
GitHub - hatchet-dev/pickaxe: Build agents that scale with a zero-cost abstraction.

Build agents that scale with a zero-cost abstraction. - hatchet-dev/pickaxe

GitHub
🌘 墨莉·利沃西:GitHub 與 Bluesky 的本地優先應用程式探討 — Ink & Switch 的 BeeKEM 協議深度解析
➤ 解構 BeeKEM 協議:本地優先應用程式的隱私與安全新途徑
https://meri.garden/a-deep-dive-explainer-on-beekem-protocol/
本文深入探討了 Ink & Switch 的 BeeKEM 協議,該協議旨在提升本地優先應用程式的隱私保護和安全性。作者結合自身在 Muni Town 專案的經驗,以及對 Keyhive 專案的深入研究,詳細解釋了 BeeKEM 如何實現分散式能力驗證,以及其基於 DAG 深度壓縮加密 CRDT 更新的 Sedimentree 機制。文章還回顧了安全羣組通訊的演進,從 Signal 協議到 Sender Keys 再到 MLS 標準中的 TreeKEM,並闡述了 BeeKEM 在這些技術基礎上的創新與優勢。
+ 這篇文章寫得非常深入,對於對分散式系統和網路安全感興趣的人來說,絕對值得閱讀。作者的解釋清晰易懂,讓我對 Bee
#科技 #網路安全 #分散式系統
A deep-dive explainer on Ink and Switch's BeeKEM protocol

I'm a programmer, designer, writer and artist. I try to make tools for community autonomy, creativity, and resistance.

🌕 同態加密 CRDTs
➤ 在本地優先軟體中保護隱私與協作的創新方案
https://jakelazaroff.com/words/homomorphically-encrypted-crdts/
本文探討了在本地優先軟體中,如何使用同態加密技術解決資料保密和離線協作的權衡問題。傳統的端到端加密雖然能保護資料隱私,但無法支援離線狀態下的更新合併。同態加密允許伺服器在不解密資料的情況下執行計算,因此可以合併來自不同使用者的更新,即使他們並非同時在線。文章介紹了同態加密的基本原理,並以簡單的加法範例演示瞭如何在 Rust 中使用 TFHE-rs 函式庫實現同態加密,最後強調了同態加密的限制及其對本地優先軟體的影響。
+ 感覺這個技術很有潛力!如果能有效解決效能問題,就能讓雲端協作更加安全和方便。
+ 文章解釋得蠻清楚的,對於非專業人士來說也容易理解,讓我對同態加密的實際應用有了更深入的認識。
#加密 #分散式系統 #CRDT #網路安全
Homomorphically Encrypting CRDTs | jakelazaroff.com

Homomorphic encryption allows a computer to run programs on encrypted data. Learn how homomorphic encryption works through interactive examples, build a homomorphically encrypted CRDT and see whether it has promise for local-first software.

🌗 MongoDB 的形式化驗證:測試我們的程式碼是否符合 TLA+ 規格
➤ 確保程式碼可靠性的關鍵步驟
https://www.mongodb.com/blog/post/engineering/conformance-checking-at-mongodb-testing-our-code-matches-our-tla-specs
MongoDB 利用 TLA+ 形式化規格來設計和驗證其複雜的分散式演算法,以確保其正確性。本文探討了 conformance checking (一致性檢查) 的方法,即驗證實際程式碼實現是否符合這些規格。作者分享了他們在 2020 年的實驗經驗,包括使用 test-case generation (測試案例生成) 和 trace-checking (追蹤檢查) 這兩種技術,並分析了它們在實際生產規模系統中的應用挑戰。他們強調了 "eXtreme Modelling" 的重要性,即使用多個小型規格來建模大型系統,並持續測試規格和實現的一致性。
+ 這篇文章讓我對 MongoDB 如何
#軟體工程 #形式化驗證 #MongoDB #分散式系統
Conformance Checking at MongoDB: Testing That Our Code Matches Our TLA+ Specs | MongoDB Blog

Testing code fidelity with TLA+ specs at MongoDB. Explore conformance checking experiences and agile modelling in distributed systems.

MongoDB
🌘 從 RPC 到交易與持久化執行 – Pramod Biligiri
➤ 探討系統設計中數據一致性和容錯性的演進之路
https://www.pramodb.com/index.php/2025/05/21/from-rpc-to-transactions-and-durable-executions/
本文探討了從遠程程序呼叫 (RPC) 到現代持久化執行引擎 (如 Temporal) 的演進歷程,並深入研究了交易、分散式交易以及容錯系統建構的相關概念。作者追溯了相關技術的發展,從最早的二階段提交 (2PC) 協議、企業整合模式 (EIP),到 Java 交易 API (JTA) 和後來基於 Web Service 的標準 (WS-AtomicTransaction、WS-BusinessActivity),分析了每種方法的優缺點以及為何它們未能廣泛普及。文章強調了在複雜系統中實現數據一致性和容錯性的難度,並指出這些問題的根本難度在數十年中一直存在。
+ 這篇文章深入淺出地分析了分散式系統中交易的演進,讓我對 Temporal
#分散式系統 #交易 #持久化執行 #軟體架構
From RPC to transactions and durable executions – Pramod Biligiri

🌕 無需 CRDT 或 OT 的協作文字編輯
➤ 簡化協作文字編輯的全新方法
https://mattweidner.com/2025/05/21/text-without-crdts.html
這篇文章介紹了一種簡潔且易於實作的協作文字編輯方法,無需使用複雜的衝突自由複製資料型態 (CRDT) 或作業轉換 (OT) 演算法。作者指出,傳統的解決方案雖然有效,但概念複雜且不易客製化。他提出的方法是為每個字元賦予一個全球唯一的ID,並使用“插入後”操作,讓伺服器可以根據ID正確地更新文字內容,從而解決了同時編輯時的索引重新定位問題。此方法不僅適用於文字編輯,也可用於其他協作列表,並為分散式協作提供了可能性。
+ 這篇文章的觀點很有意思,一直覺得 CRDT 和 OT 實在太難理解和實作了,這個方法聽起來更實際一些。
+ 簡化協作編輯的流程聽起來很棒,但實際應用中,ID 管理和伺服器負載是否會成為問題呢?
#軟體工程 #協作編輯 #分散式系統
Collaborative Text Editing without CRDTs or OT - Matthew Weidner

🌗 清理垃圾:大規模物件儲存的垃圾回收
➤ 解決物件儲存中邏輯刪除檔案的挑戰
https://www.warpstream.com/blog/taking-out-the-trash-garbage-collection-of-object-storage-at-massive-scale
WarpStream 是一家提供 Kafka 替代方案的公司,其核心技術建立在物件儲存之上。本文探討了在物件儲存中處理邏輯已刪除檔案(因資料過期或壓縮而產生)的挑戰。作者分析了直接使用物件儲存的垃圾回收策略(如桶策略和同步刪除)的侷限性,並說明瞭這些方法為何無法滿足複雜系統的需求,例如在保留期限差異大的主題時或在進行壓縮時。最終,作者提出使用延遲佇列作為一種更可靠的解決方案,以避免資料遺失和查詢失敗的問題。
+ 這篇文章深入探討了大型分散式系統中常見的物件儲存問題,對於瞭解資料管理和效能優化很有幫助。
+ 我一直對 Kafka 的內部運作方式感到好奇,這篇文章能從另一個角度瞭解其複雜性,以及建立替代方案所面臨的挑戰。
#分散式系統 #物件儲存 #Kafka #資料管理
Taking out the Trash: Garbage Collection of Object Storage at Massive Scale

Distributed systems built on object storage all have one common problem: removing files that have been logically deleted either due to data expiry or compaction. We review the pros and cons of five ways to solve this problem.

🌗 toyDB:用 Rust 寫成的分散式 SQL 資料庫 (教育專案)
➤ 用 Rust 學習分散式資料庫的實用教材
https://github.com/erikgrinaker/toydb
toyDB 是一個用 Rust 語言從頭開始建立的分散式 SQL 資料庫,主要目的是作為一個教育專案。它具有基於 Raft 共識演算法的線性化狀態機複製、ACID 交易(基於 MVCC 的快照隔離)、可插拔的儲存引擎(如 BitCask 和記憶體後端),以及基於迭代器的查詢引擎,並支援 SQL 介面,包含連接、聚合和交易等功能。作者在 CockroachDB 和 Neon 的經驗啟發了這項專案,旨在提供一個簡潔易懂的分佈式 SQL 資料庫架構範例。
+ 哇,這真是個很棒的學習資源!如果想了解分散式資料庫的內部運作,這看起來是一個很好的起點。
+ 雖然強調效能不是重點,但能看到實際的程式碼實現,比只讀理論書更有幫助,期待能深入研究一下。
#程式設計 #分散式系統 #資料庫
GitHub - erikgrinaker/toydb: Distributed SQL database in Rust, written as an educational project

Distributed SQL database in Rust, written as an educational project - erikgrinaker/toydb

GitHub
🌘 非同步 Rust 的確定性模擬測試
➤ 透過模擬測試強化分散式系統的可靠性
https://s2.dev/blog/dst
本文探討了 Bandar Systems 在構建 S2 分散式資料系統時,如何實施確定性模擬測試 (DST) 的經驗。作者分享了將非同步 Rust 程式碼轉為可重複測試的挑戰,包括控制執行、隨機性、時間和 I/O。他們結合了 Turmoil 和 MadSim 工具,最終透過覆蓋關鍵系統呼叫,成功實現了完全的確定性測試,並在 CI 環境中驗證了其有效性。透過 DST,他們已發現並修復了 17 個潛在問題,大幅提升了系統的可靠性。
+ 這篇文章清楚地解釋了確定性測試的重要性,以及在 Rust 這樣的非同步環境中實施的複雜性,對開發分散式系統的工程師很有幫助。
+ 結合 Turmoil 和 MadSim 的方法很有創意,為其他團隊提供了一個很好的參考,可以快速建立可靠的測試流程。
#軟體工程 #測試 #Rust #分散式系統
DST for async Rust

Taming distributed systems with deterministic simulation testing.

S2