雑に読むMisskey
草.icon雑に読むのそっちかbsahd.icon
基素.icon
こんなことがわかると良い
他のサーバーとどうやってメッセージをやり取りするの?
noteのデータが大きくなってきたらどうするの?
noteのデータはDBに保存されると思うけど、それがかなり大きくなったらどうする?
画像はどこに保存されるの?
配信URLはark.jp
これはS3とかに保存すればいいか(興味が消えた)
src/coreがcoreっぽい(小並感)
コミットメッセージ面白い
https://gyazo.com/2fa1094505198d01b8c8bf2ac8ef8603
ActivityPubの実装
ApInboxをちょっと見るといろんなアノテーションがいっぱい
仕組みを理解していない段階でこれを眺めるのは難しそう
2つのレイヤーがある
サーバー間で情報を共有するプロトコル
クライアント-サーバーでのプロトコル
片方だけの実装でも良いが、1つを実装したらもう一方も実装が容易
両者は似ているってことかな基素.icon
サーバーのユーザーアカウントをユーザーのことをActorという
Actorにはメッセージをやり取りする方法(エンドポイント)が提供されている
https://gyazo.com/28b76540c1d91aa8dbb74aee0260a0c1
inbox メッセージを受信する
サーバー間のみが、誰かのinboxにPOSTできる
misskeyだとサーバーのエンドポイントのPOSTの実装はここ(outboxも同様) キューがつまれる
取り出されるのはどこ?
QueueProcessorServiceがそれっぽい
Activityの種類によって処理が行われる
actorはinboxからGETすることでメッセージを読むことができる
redis 5だから..という話もあるけど、とっくにredis7だからこの点は問題ない
outbox 送信する
ここにActorが送信すると世界中にメッセージが配信される
誰かのOutboxからメッセージをGETすることができる
サーバー to サーバー
サーバー間で別のサーバーのユーザーのメッセージを受け渡すときに使うのかな基素.icon
クライアント to サーバー
AlyssaがBenにメッセージを送信するとき、まず自分のoutboxにpostする
するとサーバーがbenのinboxにpostする
BenのActivityStreams actor objectを検索する
ということは、misskeyのinboxの実装にもこういう実装があるはず基素.icon
AlyssaのスマホはinboxにGETをポーリングしてメッセージを確認する
GET /inbox の実装どこ?
noteのデータがどうなっているのか
MisskeyはRESTを採用していません。
貢献できそうなポイント
トレンドのハッシュタグのロジック
起動時に出るMisskeyのアスキーアートを発見したMijinko_SD.icon
https://gyazo.com/cbdecdeb1fca2c06437c048ca8c4c1d4