Blueskyの開発チームの一員であるダン・アブラモフ氏の話を聞けるオフラインイベント「Bluesky mini meetup in Kyoto 2024」が2024年9月21日(土)に開催されたので、参加してきました。イベントではアブラモフ氏によるBlueskyの基盤技術についての講演を聞けたほか、質疑応答タイムもあったので「どんな経緯でBlueskyに入社したの?」「ユーザーの増加にサーバーは耐えられる?」といった気になることを聞いてきました。

Bluesky

https://bsky.app/

◆会場はこんな感じ

Bluesky mini meetup in Kyoto 2024は、京都市中京区の書店兼イベントスペース「泥書房」で開催されました。

烏丸駅から数分歩いて泥書房に到着。



会場内部はこんな感じ。10人以上のBlueskyユーザーたちが集まっていました。



以下の人物が、今回来日したBluesky開発チームのアブラモフ氏です。アブラモフ氏はBlueskyのフロントエンド開発を担当しており、UI構築JavaScriptライブラリ「React」の開発メンバーや状態管理フレームワーク「Redux」の開発者としても知られています。



◆アブラモフ氏の講演

イベントはアブラモフ氏による講演からスタート。講演ではBlueskyの基盤となっている分散型SNSプロトコル「AT Protocol」のデータ管理の仕組みについてスライドや「ATProto Browser」を用いたデモを交えつつ詳しく語ってくれました。



アブラモフ氏による講演はすべて英語で、会場内にはAI翻訳アプリ「VoicePing」の画面を大写しにしたMacが設置されていました。



◆質疑応答タイム

講演の後は、質疑応答タイム。まずは、イベントの司会を務めたNighthaven氏が用意してきた質問にアブラモフ氏が回答しました。主な質問と回答は以下の通り。

Nighthaven氏(以下、Nighthaven):

Blueskyのフロントエンド開発メンバーとして活動する「Paul Frazee」「hailey」「Eric」「Samuel」の印象を教えてください。

アブラモフ氏(以下、アブラモフ):

Paulはとても優秀な開発者です。Blueskyアプリの初期版を数カ月で作ってくれました。彼の書くコードは完璧ではなくハックが必要になることもありますが、彼は重要事項を決めて優先的に取り組むのがとても上手です。haileyは問題解決能力に優れています。彼女はAndroidアプリとiOSアプリの動画再生機能に取り組んでいて、プラットフォームの違いに対してうまく対処できています。

Ericはアプリの視覚的な部分を担当しています。彼は美的感覚に秀でていて、UIを美しく見せる方法を心得ています。Samuelはウェブアプリ版の動画生成機能の開発を担当しました。彼はWebAPIに精通していてネイティブなアプローチを考えるのが得意です。

Nighthaven:

Blueskyにグループチャット機能を搭載する予定はありますか?

アブラモフ:

計画は存在していますが、直近で実装の予定はありません。

Nighthaven:

トレンド表示機能の実装予定はありますか?

アブラモフ:

トレンド表示機能を求める要望をたくさん受けていて、検討はしています。初期の動きはありますが、いつ頃実装されるかは分かりません。

Nighthaven:

分散型SNSプロトコルを採用することで、フロントエンド開発に何か影響はありましたか?

アブラモフ:

フロントエンド開発の部分は、通常のウェブ開発と大きく変わりません。

Nighthaven:

2年後、Blueskyはどうなっていますか?

アブラモフ:

生きてるといんですが(笑)。そうですね。明確な収益化手段を確保して会社を存続させる必要があります。それから「グループチャット機能の実装」「特定のユーザーをミュート」といったユーザーからの要望が多い機能も実装したいです。また、Blueskyはパワーユーザー向けの印象が強く残っているので、一般ユーザーにも使いやすくする必要もあります。それと、フィード機能などの他のSNSにはないBluesky独自の機能を強化したいとも考えています。



Nighthaven氏の質問が終わった後は、イベント参加者がアブラモフ氏に質問できる時間が設けられました。いい機会だったので、気になる質問を4つぶつけてみました。質問と回答は以下の通り。

GIGAZINE(以下、G):

BlueskyのテクニカルアドバイザーのWhy氏(ジェロミー・ジョンソン氏)が2024年4月に来日した際に「BlueskyのウェブアプリをReactで開発し始めたものの、開発が難航し、最終的にMetaでReactを開発していた人を開発チームに呼ぶことになった」と話していました。この「Reactの開発者」というのはダン氏のことだと思うのですが、どういった経緯でBluesky開発チームに参加することになったのか教えてください。

アブラモフ:

私は以前はFacebook(現:Meta)でReactの開発に携わっていました。Facebookでは8年働いていたのですが、他のことがやりたくなったので辞めることにしました。そのタイミングでBlueskyと出会って、かなり興味を引かれたんです。

私はTwitterが本当に大好きだったのですが、Twitterの新しい方向性が理解に苦しむものだったので、「Twitterの違うバージョン」があったらいいなと思っていたんです。また、オープンソースも大好きで、オープンソース関連の仕事がしたいとも考えていました。

BlueskyはReactで作られていましたし、Blueskyの「ドメインをハンドルネームとして扱う」というアイデアも気に入りました。Blueskyは根本的な部分で理にかなっていると思えたので、Blueskyの採用面接を受けて開発チームに参加することとなりました。

G:

Why氏が来日した際に、「Blueskyのデータセンターはサンフランシスコとブラジリアにある。各データセンターで30台のサーバーが稼働している」という話を聞きました。直近の1カ月間でBlueskyのユーザー数は急増していますが、サーバーに余裕はありますか?

アブラモフ:

そうですね。ブラジルでXのサービスが停止したので、多くのブラジル人ユーザーがBlueskyに参加しました。現在、ユーザー数は1000万人を超えています。Xのサービスが停止する以前は600万人くらいだったはずです。ユーザーが急増し始めた直後はサーバーが少し不安定になりました。これはサーバーのリソースが足りなかったわけではなく、いくつかの設定が完璧じゃなかったんです。だから、サーバー構成を少し調整する必要がありました。

サーバー構成を調整した後は、かなりスムーズに動作するようになり、以前よりも多くのトラフィックを処理できるようになりました。ブラジルのユーザーはとても活発に行動しており、多くの投稿、多くのフォロー、多くの「いいね」があります。特に、「いいね」の数は10倍くらいになったと思います。それでも、ネットワークは今のところ回復力があり、拡張性も確保できています。このため、今以上のユーザー規模に対応させることも十分に可能です。



G:

AT Protocolの解説ページでは、主なフェデレーションアーキテクチャとして各ユーザーのデータが保存される「PDS」、各PDSの情報を収集してキュレーションなどを実施する「Relay」、Relayの情報を受け取って表示用に加工する「App Views」の3つが紹介されています。今のところ、PDSサーバーをユーザーがホストできることがアナウンスされていますが、Relayのサーバーも独自ホストできるようにする計画はありますか?

アブラモフ:

Relayの使用はオープンソースで公開されているため、実行しようとすれば実行可能です。私たちがそれを止めることはありません。

Relayを稼働させる際はネットワーク上に存在する全PDSを対象とすることもできますし、一部のPDSだけを対象とすることもできます。ちなみに、全PDSを対象としたPDSサーバーをホストする場合、月額150ドル(約2万2000円)ほどの費用がかかります。超高額というわけではありませんが、PDSのホストよりはコストがかかります。

なお、Blueskyでは負荷分散のために2つのRelayサーバーをホストしています。

G:

プライベートアカウントの実装予定はありますか?また、プライベートアカウントの優先順位はどのくらいですか?

アブラモフ:

これは興味深い質問です。プライベートアカウントを実装するには、複数の問題を解決する必要があります。分散型SNSプロトコルは全体がパブリックなことが特徴ですが、私たちは「分散型のパブリックSNS」というものが作れるか否かという点に焦点を絞って議論しています。また、プライベートアカウントに対するAPIの振る舞いについても複数の検討事項があります。今後数カ月から半年程度をかけて仕様を詰めていくことになります。

ただ、私たちは(他のSNSと同様の)プライベートアカウントを実装しようとしているわけではありません。私たちは「PDSにデータを保存し、Relayには公開せず、データへのアクセスを求める特定のアプリにだけ公開する」という仕組みを作ろうとしています。例えるなら、Dropboxのファイル共有のようなものです。これはいわゆる「プライベートアカウント」とは異なるもので、どちらかというとグループチャット機能に近いものになります。

プライベートアカウントの仕様については検討中のため、どうのような仕様になるのかはまだ不明瞭ですが、少なくとも「プライベートアカウントが欲しい」というユースケースに対応できるものを用意したいとは考えています。

◆ユーザーによるライトニングトーク

アブラモフ氏の講演と質疑応答タイムの後には、しげぽん氏とえるたん氏によるライトニングトークが実施され、その後解散となりました。ライトニングトークの内容は、以下の埋め込み内のリンクから確認できます。

今日のスライドです #BlueskyMeetupKyoto

docs.google.com/presentation...— しげぽん@shigepon7 (@shigepon.net) 2024-09-21T07:07:24.114Z


どこまで配信乗ってたかわからんけど、発表した資料を放り投げておきます #bskymeetup
https://docs.google.com/presentation/d/11FDxvMWTDQfeQYsJqIAYLHoxdbBcksR6eRRrtok5vIw/edit?usp=drivesdk— えるたん (@l-tan.dolciss.net) 2024-09-21T07:01:23.311Z