If you needed this level of flexibility in your mobile apps, why not just download the datastore to the client and use something like SQLLite, or a JSON query language on the client (similar to mongo, there are lots of options).<p>In addition, in reading the thing that &quot;pushed you over the edge&quot; ... I really don&#x27;t see how REST has failed you here, in terms of how you are partitioning your data. I can&#x27;t imagine that some kind of intelligent caching of data (no need to re-download playlist data to the client that hasn&#x27;t changed, etc). wouldn&#x27;t have been a more straightforward approach here.<p>I find the GraphQL stuff interesting but your problems would have been better served by refactoring what you had rather than moving to a completely new API and query format, at the cost of sacrificing an easy to use interface for your internal and (maybe) external consumers of your API. I&#x27;m not convinced you won&#x27;t have the same issues with GraphQL and could stand a bit more pragmatism.