Slide 10
Slide 10 text
10
何が危険なのか?
● オブジェクトがキャッシュされている
○ 暗黙のSerialize/Deserializeが発生
○ Rails公式でもキャッシュにはrawデータ(a string or number)を用いることがmustとされている
■ https://guides.rubyonrails.org/v4.2.8/caching_with_rails.html#activesupport-cache-memcachestore
● なぜ危険なのか?
○ 異なるサービス間・同じサービスの過去の実装と現在の実装間で共有される
■ データ(キャッシュ)自体が実装に強く依存している状態
■ Ruby(Rails)以外の実装のアプリケーションとは共有できない
● もしくは明示的な実装が必要
■ 不具合があってロールバックすると整合性が取れないという状況が起こりうる
● 例) キャッシュ対象のオブジェクトのクラス名が変わる