Kullanilabilir tabii ki. Ikisi ayri amaca hizmet ediyor, birinden birisini tercih etmek durumunda degilsin.
Bahsettigin use-case cok yaygin bir kullanim. Belirli bir islem grubun ayni transaction icinde atomik olarak islemek isteyebilirsin. Zaten rdbms bunun icin var.
Bu bahsetting konu katmanli cache mimarisi, ornegin AWS'nin yazdigi guzel bir doc:
Caching patterns - Database Caching Strategies Using Redis
Eger boyle bir yol izlersen, cozmen gereken problem veri tabanı guncellendiginde cache katmanininda uygun sekilde guncellenmesi ( invalidasyon ). Bunu yapan Orm'ler var kendin de implemente edebilirsin.
Saçma bir yaklasim degil, bolca kullanilan bir yaklasim. Yalnizca konfigure ederken ve implemente ederken dikkat etmen gerekiyor.
Ornegin birisi bir Post'u guncellediginde, Cache'i de guncellemen gerekecek. Her seyi cache'lemeye kalkarsan Memory yetistiremeyeceksin. Hizli olmasini istedigim kisimlarin read operasyonlari cache'ten okur; wrıte operasyonlari hem Cache'i hem de DB'yi Update eder. Bu baslangic mantigi ile ilerleyebilirsin. Ayrica DB'den elle bir seyler degistirdiginde bu degisiklik read operasyonlarinda goruntulenemeyecek ( hala cache'ten okuma yaptigi icin ); buna da cozum olarak basit bir invalidasyon mantigi eklersin, gg.