If you help Apollo correctly identify objects, by asking the server for their ID, it will normalise them at the root of the cache. This ensures that instead of duplicating data, all queries and all the other entities just reference that single normalised instance. The more normalised entities and references to those entities you have, the more you'll notice components correctly reflecting updates when mutation are made.