AppView-lessは分散を意味しない——2026年4月16日Bluesky障害が可視化したもの

0. Overview

2026年4月16日、BlueskyはDoS攻撃により13時間以上ダウンした。公式Web・アプリ・公式フィードが不通になる一方、Leafletは稼働を続けた。ATProtoの「PDS層がデータ主権を担保する」という説明はここまでは妥当である。だが、AppView-lessを標榜するRedDwarfが動かなかった事実がある。PDS層の分散性だけでは説明できない。本稿は、ATProtoスタックには「データ層」と「視点層」という二つの独立した主権次元が存在し、視点層は依然として単点集中していると主張する。AppView-lessは代替ルートであって分散ルートではない。

1. Definitions

Leaflet：ATProto上で動作するブログ・長文出版プラットフォーム。Hyperlink Academyが開発。ユーザーはBlueskyアカウントでログインし、記事データは各ユーザーのPDSに直接保存される。公式AppView（api.bsky.app）を経由せずに配信できるため、Bluesky障害時にも影響を受けにくい。

RedDwarf：AppView-lessを標榜するBluesky互換クライアント。公式AppView（api.bsky.app）を使わず、ユーザーのPDSへの直接問い合わせと、Microcosm（Constellation・Slingshot）が提供する逆引きインデックスから投稿・返信・いいね等を取得する。

Microcosm：bad-example.comが開発・運用するATProto向けインフラ群。Constellation（逆引きインデックス）、Slingshot（レコードのエッジキャッシュ）、Spacedust（リンクfirehose）等から構成される。公式Relay（bsky.network）のfirehoseを消費して稼働する。

データ主権（data sovereignty）：ユーザーが自らの記録（リポジトリ）を保持し、配信経路を選択できる状態。PDS層で実現される。ATProtoの既存言説が中心的に扱ってきた主権概念である。

視点主権（viewpoint sovereignty）：ユーザーが自らの記録を「どう見るか」の選択肢を持つ状態。逆引き（リプライ一覧、フォロワー一覧、言及一覧）を誰が集約するかの選択に関わる。AppViewおよびインデックサ層で決まる。

単点集中（single-point concentration）：特定の機能が単一または少数の運用主体に依存している状態。分散インフラ全体から見れば、その点が落ちれば当該機能が停止する構造を指す。ATProto設計議論でしばしば言及される「単一障害点（single point of failure, SPOF）」と本稿では同義に扱う。

代替ルート（alternative route）：既存の集中点を経由しない別の経路。だが別の集中点に依存している場合、障害耐性の点では既存ルートと等価である。

分散ルート（distributed route）：機能が複数の独立運用主体に冗長化されており、任意の一点が落ちても機能が維持される経路。

2. Propositions

P1：ATProtoスタックの主権は「データ層」と「視点層」の二次元で評価される必要がある。両者は独立に集中・分散しうる。

P2：PDS層はATProtoにおいて実効的に分散されている。Leafletは自前PDS配信で障害時も稼働を維持した。

P3：視点層は現状、少数の集中点に依存している。公式AppView（api.bsky.app）と、AppView-lessを標榜するクライアントが依存する逆引きインデックサ（Microcosmが運用するConstellationおよびSlingshot）は、いずれも単点である。後者は前者を回避する代替経路だが、それ自体が単一運用主体に依存している。

P4：逆引き操作（リプライ一覧、フォロワー一覧、言及一覧）はPDS単体では原理的に実行できない。誰かが集約する必要がある。この集約機能が視点層の臨界点である。

P5：AppView-lessアーキテクチャは、公式AppViewへの依存を回避する代替ルートを提供するが、分散ルートは提供しない。別の単点集中に依存を移しているにすぎない。

3. Corollaries

C1（P1, P2より）：データ主権の成立は視点主権の成立を含意しない。両者は別個に達成されるべき目標である。ATProtoの「分散」評価を一次元で行う言説は、少なくとも二つに分離して評価し直す必要がある。

C2（P3, P5より）：AppView-lessクライアントと公式クライアントは、障害耐性の観点では構造的に同等である。依存先は異なるが、依存の形態（単点集中への依存）は同一である。

C3（P4より）：視点層の分散化は、逆引き集約機能の冗長化を必要とする。PDSの数を増やすだけでは達成できない。複数の独立インデックサが同一ネットワークを並行して集約し、クライアントが任意に切り替えられる構成が要件となる。

C4（P3より）：Relay層の障害は視点層全体に波及する。PDSが稼働していても、firehoseが詰まれば下流のすべてのインデックサ（公式・非公式を問わず）が新規データを取り込めなくなる。Relay層もまた視点主権の臨界点である。

C5（C2, C3より）：「AppView-less」を分散性の指標として用いることは誤導的である。真の指標は「依存先インデックサが複数あり切替可能か」である。この条件を満たすATProtoクライアントは、2026年4月時点で存在しない。

4. Open Questions

Q1：視点主権を実現するインフラ構成は、経済的に持続可能な形で設計できるか。複数の独立インデックサを維持するコストは、公式AppView一点集中と比べて数倍のリソースを要する。誰がそのコストを負担するのか。

Q2：視点層の冗長化は、PDS層の分散と同じ設計思想で達成できるのか。PDSは「個人が自分のデータだけをホストする」ことで分散を達成した。だが逆引き集約は本質的に全体を見る必要がある。個人規模では担えない機能の分散は、PDSモデルとは異なる設計を要求するのではないか。

Q3：梁モデル（weir model）や水晶ラジオモデル（crystal radio model）は、視点層の設計原理としてどこまで具体化可能か。現在これらは比喩的構想にとどまる。実装可能な仕様にまで落とし込んだとき、PDS－Relay－AppViewという既存スタックのどこに、どのような形で挿入されるのか。

Discarded Hypotheses（棄却仮説）

RedDwarfが動かなかったのは、RedDwarf側の実装障害である——観察された事実（Leafletは稼働、公式AppViewは停止、RedDwarfは停止）を最も簡潔に説明するのは、RedDwarfが依存する共通インフラ（Microcosm／Relay）の障害である。個別実装の障害を持ち出す必要はない。

PDS層もまた集中している——Leafletが稼働を続けた事実がこの仮説を棄却する。少なくともLeafletが依存するPDS経路は、公式インフラの障害に対して独立に機能した。PDS層の実効的分散は観察事実として成立している。