Poor schema design?<p>Here's my take: anytime a client requires knowledge of your DB schema is a #fail. That's an extremely brittle architecture that's destined to provide years of problems.<p>This is why CQRS exists. Copy the contents of your database to another database that's optimized for query and retrieval. It has the added benefit of a deluge of queries won't impact operations utilizing the source database. Also, the source system can modify the schema all they want without impacting tens, hundreds, or thousands of clients. You can distribute it, shard it, do whatever you need to do to make it fast and efficient - all without affecting the source database.<p>That is how you solve this problem. Once you've done that, GraphQL just becomes one of many ways that a client can use to access the data, depending on the data management toolset you're using.