今はセッションでしか持っていないので、ブラウザをリロードするたびに全てgetしている
messageやcharacterはほぼ変更ないので、(半)恒久ストレージに入れちゃってもいいかも?(indexeddbとかcachestorage?とか(よくわかってない))(自動でリテンションしてくれると便利ではある)
messageに関しては、それに紐づくassociationのリストは頻繁に変更があるのでそこは注意
また、characterは低頻度であれどプロフィール更新で変わるので、何かしらのcache invalidateの仕組みが必要
案1 websocketイベント
一番簡単だけどオフラインの人が更新できない。当然ボツ。
案2 messageにして流す
プロフィールを更新したよ!(からcache invalidateしてね!)というメッセージを送信する。
クライアントはmessage.idをキャッシュしておいて、まだ更新してないメッセージなら更新する。
cons: タイムラインに出ちゃう(隠せるがいちいちfilterするのめんどくない) (個人的には出ても良いのではという気もするがサイレントにしたい人もいるかも?)
案3 associationにして次回メッセージ送信時に自己associationする
プロフィールを更新したよというassociationタイプを作って、自分の次のメッセージ送信時に自分でつける。
タイムラインには出ないし取り回しは良いが、メッセージを出すまで気づかれない。