pleroma.tenjuu.net

hal+jsonでembeddedとかやりはじめるとキャッシュできなくならない?よいパターンではないような気がする。

@tenjuu99
リソースAとBがあって、AにBが埋め込まれているとBが更新されたらAをパージしないといけなくて依存関係の管理が難しい的な感じです?

@NaokiTsuchiya ですです。例えばリソースAが通常の記事で、更新日時をもとにetagを作るとして、そこに埋め込まれているリソースBが新着リストの場合、リソースAのライフサイクルのペースに対してリソースBはまあまあの早さで更新されるわけですが、リソースBのライフサイクルがリソースAのキャッシュの維持期間になる(リソースBが更新時にキャッシュ切れるとした場合)。これが複数のリストを埋め込むと、リソースAのキャッシュ維持期間は更に短くなっていくので、うーんって思っています。
replies
1
announces
0
likes
0

@tenjuu99
なるほど。HTMLであればCDNレイヤーでESIみたいな仕組みを使えば新着部分と記事自体を分けてキャッシュしておいて、合成結果を返すみたいな事ができますが、JSONなどだと難しいかもしれませんね。
雑にぐぐってみるとvernishでjsonのESIみたいなのはできるようですが。。

@NaokiTsuchiya そうそう、CDNとかBFFとかの中間サーバー側で embed を解釈して合成なり入れ替えなりする仕組みがないといけなくて、オリジンで embed してしまうとたんなる body なんですよね。複数のリソースのライフサイクルがクロスしちゃうとそのぶんライフサイクルが短くなるだけで、キャッシュ戦略としてはよろしくない。