えっとね、
・メンション
・返信(リプライ)
この二つ、違うから覚えておいてね。
メンションは、投稿本文中に @ つけてアカウント書くことで実行できるもので、そのアカウントに通知される。いくつでも指定できるよ。
どの投稿からメンションされたか合わせて通知するので、投稿に気が付いて、見に行くことができるね。
メンションは『言及』っていう意味だよ。
返信(リプライ)は、投稿同士の関係のことで、返信先になる元の投稿があって、そこに返信をぶら下げる形になる。
構造的に、返信の対象はひとつだけ。
で、返信自体は通知されないんだ。
返信の際にメンションが自動的につくので、返信された人に通知がいくんだよ。
実は、メンションをつけずに返信すれば、通知されない返信ができるよ。
I am taking action to protect the East and West coasts, the eastern Gulf of Mexico, and the Northern Bering Sea in Alaska from oil and natural gas drilling and the harm it can cause.
Now is the time to protect these coasts for our children and grandchildren.
Big News: Today, President Biden is taking action to protect the East and West coasts, the eastern Gulf of Mexico, and Alaska’s Northern Bering Sea from future oil and natural gas drilling.
This means President Biden has conserved more than 670 million acres of America’s lands and waters – more than any other president in history.
ハッシュタグリレーは、Fedibirdよりも前に作られたもので、前身みたいなところがある。
ハッシュタグでFediverseを繋ぐ仕組みが欲しかったことと、購読の仕組みを作ろうと思って作ったのね。
普通は、サーバの管理者がリレーに参加するかどうかを決めて実行する。流量が増えて、サーバの負担が大きくなるからね。
ハッシュタグリレーは、投稿についてはハッシュタグがついているものだけを転送するリレーで、つないだサーバの負担がいくらか軽い。投稿以外、例えばアカウントの削除とかそういうアクティビティは全部転送するんだけどね。
あと、実は個人でリレーに参加することができるんだよ。
自分の投稿をリレーに流して、ハッシュタグリレーに参加しているサーバに流すことができるのと、
リレーに対し、欲しいハッシュタグやアカウントを指定して購読することができる。
misskey.ioとかmstdn.jp、Pawooのような、リレーに参加することが期待できない(大きすぎるので)サーバから自分だけ参加することもできるんだ。
リレー全体に参加すると負荷が高すぎると感じる場合に、たとえば # gochisou_photo だけ流して貰うようにするとか、そういう選択もできるよ。
ハッシュタグリレーの非効率だった部分に手を入れて、だいぶ動きが良くなったよ。もう2年とか3年ぶりにコードいじるので、完全に忘れてるよね!
--
ウチのリレーはCrystal言語で書かれているんでみんな馴染みがないと思うけど、CrystalはRuby風の静的型付け言語で、バイナリにコンパイルされて実行速度は速いし、書いてて楽しい感じはRubyと一緒。
Mastodon用に、最初はRubyでpub-relay-protoが作られて(Eugenさん作)、そのCrystal版をChris Hobbsが作った。たぶんMastodon本家から有償開発依頼して書いてもらったものだと思う。
このCrystal版は、一回大規模なリファクタリングが行われて、当初はCrystal版のSidekiqベースで作られていたんだけど、途中でプロデューサー・コンシューマーパターンのアーキテクチャに変更になっているのね。
ハッシュタグリレーは、Sidekiq版からの派生。Fedibirdリレーで使ってる方は、後者のpub-relayの直系になってるよ。
sidekiqは使い慣れてるのと、複数プロセスで動かせばスケールし易い。後者は何かプロセス間通信の仕組みを導入する必要があるね。