GraphQL को cache करना REST की तुलना में कठिन है क्योंकि यहाँ एक ही endpoint होता है और requests आमतौर पर POST होती हैं, इसलिए URL-आधारित HTTP caching सीधे काम नहीं करती। इसके बजाय आप तीन layers पर cache करते हैं: client, transport/CDN, और server।
Normalized client cache
Apollo Client और Relay परिणामों को + के आधार पर keyed एक में संग्रहीत करते हैं। हर object एक बार संग्रहीत होता है; अलग-अलग queries जो एक ही को reference करती हैं, उसे साझा करती हैं, इसलिए एक mutation जो एक entity को update करता है, हर view को अपने-आप refresh कर देता है।
