
テーマ、知りたいこと
既存サービスがMVCモデルで実装されている場合、それにキャッシュ機能(キャッシュDBを設置)を追加するケースで皆さんはどのような実装(改修)方法をとられるか意見をお教えいただければと思います
背景、状況
既存のMVCモデルで開発されたサービスにキャッシュ機能を実装するにあたり、まずは現行のMVCモデルへ手を入れ進めるという段取りで考えております。
MVCモデルにおいてデータベースの操作はModel部分に実装し、操作を行う際はそれらの機能を呼び出し利用する事になると思います。
この時、例えばデータの保存先としてDB(例えば、MySQL)とキャシュDB(例えば、Redis)があり永続的な情報としてDBへ書込、そのデータのキャシュデータを作成する為キャッシュDBへ同時に書き込むような操作が行われると仮定します。
このような機能を実装する場合、DBへの操作は当然にModelに記述するわけですが、キャッシュDBへの操作はどのように実装するのが一般的なのでしょうか。
同じModel内に記述すると複数のデータソース(DBとキャッシュDB)への操作を混在して記述する事になり一般的な感じはしません。
代案としてはそれ自体を一つのサービスとして切り出し、Service層を作り分割する方法ですが、もはやMVCではなくDDDでは・・・と。
MVCにこだわる必要は当然ないのですが、前述のとおり経験や人的リソース等も含めいきなりDDDへ転換というのは影響が大きすぎると考えています。
このようなケースでは皆様であればどのような実装(改修)方法をとられるか意見をお教えいただければと思います。

0 コメント