Terrific writeup - thanks for sharing. IMHO this is the most important item: &quot;We have yet to solve caching GraphQL responses on the client.&quot;<p>Mobile client-side caching and sync&#x2F;refreshing (or client-side change push) is where users get big gains in perceived speed gains. Fielding&#x27;s REST handles this well, in my experience, though it takes some work to get the resource granularity correct, especially as a mobile app&#x27;s feature needs are changing.<p>In my experience it&#x27;s often the case that the mobile app can benefit from Fielding&#x27;s REST (with HATEOS) and from using resources that are mobile-specific and quite different than the out-of-the box server-side models that map 1:1 to database rows. As an example, the JSON API team describes how to nest resources efficiently and cacheably, and also send HATEOS links.<p>I&#x27;ll be very interested to hear more about your next steps, including how you decide to do caching, puts, and any kind of pub&#x2F;sub or equivalent. Thanks again!