非決定性は問題ではない
2.0技術的な決定論と非決定性に関する考察。本記事では、システム設計において非決定性そのものが問題なのではなく、予測不可能性や再現性の欠如が本質的な課題であると論じる。著者は、不確実性を排除するのではなく、適切に管理・活用するアプローチの重要性を指摘する。
30 件
技術的な決定論と非決定性に関する考察。本記事では、システム設計において非決定性そのものが問題なのではなく、予測不可能性や再現性の欠如が本質的な課題であると論じる。著者は、不確実性を排除するのではなく、適切に管理・活用するアプローチの重要性を指摘する。
分散システム向けの決定論的リプレイデバッガ。コンセンサスが分岐した原因をキャプチャし、リプレイし、説明する。
This article explains how idempotent operations and moving window computations can be elegantly expressed as a form of reduction. It demonstrates that both concepts, often treated separately in stream processing and distributed systems, share a common mathematical foundation when viewed through the lens of reduction operations. The post provides practical examples and formal reasoning to support this unifying perspective.
本リポジトリでは、分散システムにおける耐久性のある実行(Durable Execution)を、低レベルのプリミティブから段階的に実装しながら学ぶハンズオンガイドを提供します。基礎的な概念から始め、実際にコードを書きながら耐久実行の仕組みを深く理解できる内容となっています。
ソフトウェアアーキテクチャにおいて、オーケストレーション(サービスやコンポーネントの調整)には、複雑性の増加やパフォーマンスの低下といった「税金」が伴うという概念を指摘。このトレードオフを認識し、シンプルさを保つことの重要性を説いている。
シャッフルシャーディングは、複数のフラグメント(シャード)からサービスインスタンスのサブセットをランダムに割り当てることで、ワークロードを分離し、障害の影響範囲を限定する手法です。この記事では、AWSがどのようにシャッフルシャーディングを活用して、テナント間の影響を最小限に抑えつつシステムの可用性と耐障害性を向上させているのかを解説します。
エンターテインメント、メディア、共有ライブイベント向けの大規模同期インタラクションシステムを研究する初期段階のスタートアップ。分散システム、低遅延インフラ、エッジシステム、高並列リアルタイムインタラクション、イベントストリームアーキテクチャなどに取り組み、Go、Rust、Kafka、C++、Kubernetes、WebRTC、ストリーミング/メディアインフラの経験を持つエンジニアを募集している。
antirez氏がDwarfStarというプロジェクトについて解説。大規模言語モデル(LLM)の推論処理を複数のノードに分散させるアプローチを提案し、単一GPUの制限を超えた推論を可能にするシステム設計について述べている。
Raft合意形成プロトコルをRustでフルスクラッチ実装しました。GoベースのMIT分散システムコースラボではなく、Rustで独自の型やRPC方式を定義可能な設計を採用。Claudeをインストラクター兼コードレビュアーとして活用しつつ、I/O非依存の設計は独自に行いました。現在は単純なキーバリューストアが動作し、将来的には線形化可能な読み取りを追加予定です。
本稿では、Raft合意アルゴリズムを拡張し、クラスタ内の過半数のノードが利用不能または障害状態にあっても、残りの少数ノードだけでコンセンサスを維持し続ける手法を提案する。従来のRaftでは過半数(クォーラム)が不可欠であったが、本手法では特定の条件下で可用性を大幅に向上させる。
本論文は、関数型コレオグラフィー(分散システムの振る舞いを単一のプログラムとして記述する手法)において、フォーキング(プロセス分岐)を導入するための型システムを提案する。提案手法により、安全で検証可能な並行プロセス生成を実現し、分散プログラムの正しさを保証する。
本記事では、DwarfStarという新しいシステムを用いて、大規模言語モデル(LLM)の推論処理を分散化する手法について解説する。複数ノード間で効率的に推論負荷を分散することで、大規模モデルの実行をよりスケーラブルかつコスト効率よく実現するアプローチが提案されている。
この記事では、Reticulumネットワークにおける分散型開発の概念について説明しています。集中管理されたサーバーや中央機関に依存することなく、ネットワーク参加者間で協調的に開発を進める手法を取り上げています。
PlanetScaleのブログ記事では、システム設計において極限まで障害に耐える「極限フォールトトレランス」の原則を解説。従来の耐障害性を超え、障害を前提とした設計、段階的な劣化、自動復旧、そしてシステム全体の回復力を最大化するアプローチを、実践的な例とともに紹介している。
Oxia is an open-source metadata store and coordination system designed for distributed systems. It provides a scalable and fault-tolerant solution for managing metadata, enabling coordination between distributed components with strong consistency guarantees. The system is built to handle high-throughput metadata operations while maintaining low latency.
本記事では、信頼性の高い長期間実行されるワークフローを構築するためのプラットフォーム「Temporal」の基本概念を解説する。分散システムにおける状態管理、再実行、耐障害性といった課題を、Temporalがどのように解決するのかを、具体的なコード例を交えて紹介する。
White Rabbitは、大規模な分散システムにおいてサブナノ秒レベルの時刻同期を実現するオープンソース技術です。イーサネットネットワーク上で高精度なタイミング同期を提供し、特に原子力施設や粒子加速器などの科学技術分野で広く利用されています。このプロジェクトはCERNなどが中心となって開発を進めています。
ParadeDBは、Postgres内で最先端の全文検索とベクトル検索を実現する拡張機能を開発するシリーズAのスタートアップです。これまでコアデータベースに注力してきましたが、新たにマネージドサービスを構築するため、Kubernetes、Go、Postgresの経験を持つ分散システム/プラットフォームエンジニアを募集しています。現在10名のチームが米国に分散して活動しており、オープンソースプロジェクトです。
Temporalは、マイクロサービスアーキテクチャにおいて、長時間実行される信頼性の高いワークフローを構築するためのプラットフォームです。この記事では、Temporalの基本概念であるワークフロー、アクティビティ、タスクキュー、オーケストレーションの仕組みを解説し、分散システムにおける状態管理とフォールトトレランスの課題を解決する方法を紹介しています。
本リポジトリでは、AIエージェントを活用して分散システムのテストを行う手法について解説する。従来のテスト手法では発見が難しい障害や異常系シナリオを、AIが自律的に探索・実行することで、システムの耐障害性や信頼性を向上させることを目的としている。
ソフトウェア設計において、冪等性(同じ操作を何度実行しても結果が同じになる性質)は信頼性と一貫性を確保するための重要なパターンである。本記事では、エージェントパターンにおける冪等性の役割と、それを実現するための具体的な設計手法について解説している。
Erlangが1986年に解決した問題——すなわち、分散システムにおける耐障害性と並行処理の設計——が、今やより高次元のアーキテクチャレベルで再び重要になっている。本記事では、その背景と現在のシステム設計への示唆を探る。
データ集約型アプリケーションの設計に関する名著「DDIA(Designing Data-Intensive Applications)」の振り返り記事。著者が本書の執筆背景や主要テーマ、分散システムにおけるトレードオフについて考察し、現代のエンジニアリング実践への示唆を提供している。
このリポジトリでは、分散システムのテストに必要な実践的なスキルとテクニックを解説しています。障害注入、ネットワーク遅延のシミュレーション、整合性検証、そして分散トレーシングを用いたテスト手法などが含まれています。開発者が本番環境に近い条件下でシステムの信頼性を検証するための具体的な方法を学ぶことができます。
本記事では、オブジェクトストレージをトランザクション処理に活用するためのプロトコルについて解説する。従来のオブジェクトストレージは主に静的データの保存に用いられてきたが、トランザクション処理に対応するための手法や設計パターンが提案されてきている。これらのプロトコルにより、分散システムにおけるデータの一貫性や信頼性を確保しつつ、オブジェクトストレージのスケーラビリティを活用したトランザクション処理が可能となる。
データ駆動型システム設計のバイブルとして名高い『Designing Data-Intensive Applications』の第2版を対象としたブッククラブの開催案内。参加者同士で分散システム、データ処理、信頼性・スケーラビリティ・保守性といった同書の主要トピックについて議論し、実践的な知見を深めることを目的とする。
分散システムのテスト手法に関する厳選されたリソース集。ネットワーク障害、コンセンサスアルゴリズムの検証、フォールトトレランステストなど、分散システム特有の課題に対処するためのツール、書籍、論文、実践的なガイドを体系的にまとめている。
本動画では、チューリング賞受賞者であるバーバラ・リスコフが、コンピュータ科学における抽象化の概念、エドガー・ダイクストラの影響、そして分散システムの設計について語る。リスコフは、ソフトウェアの信頼性と再利用性を高めるために抽象化が果たす役割を解説し、自身の研究成果である「リスコフの置換原則」や分散システムにおけるデータ抽象化の重要性について詳しく述べている。
分散システムは単なるスケーラビリティのためではなく、可用性、耐障害性、地理的分散など、多様な目的を達成するために設計される。スケーリングだけが分散システムの価値ではなく、システム全体の信頼性や応答性を向上させるための手段としての側面も重要である。
本記事では、形式仕様記述言語TLA+の基本概念と実践的な使い方を、パーティー(パーティーゲームやパーティー計画)を題材に解説する。状態機械や時相論理を用いてシステムの正しさを検証する手法を、具体的な例を通して学べる入門記事である。