GraphQL کو cache کرنا REST سے مشکل ہے کیونکہ یہاں ایک ہی endpoint ہوتا ہے اور requests عموماً POST ہوتی ہیں، اس لیے URL پر مبنی HTTP caching بغیر اضافی محنت کے کام نہیں کرتی۔ اس کے بجائے آپ تین تہوں پر cache کرتے ہیں: client، transport/CDN، اور server۔
Normalized client cache
Apollo Client اور Relay نتائج کو ایک میں + کے حساب سے محفوظ کرتے ہیں۔ ہر object ایک بار محفوظ ہوتا ہے؛ مختلف queries جو اسی کا حوالہ دیتی ہیں اسے شیئر کرتی ہیں، اس لیے ایک mutation جو ایک entity کو update کرے وہ خودکار طور پر ہر view کو refresh کر دیتی ہے۔
