Communication is a difficult task that requires balancing between succinctness and clarity, asking the right questions, and receiving timely and useful information! Communication between computers is no different. Here we have to balance several conflicting requirements: avoiding over-fetching while reducing round trips, avoiding under-fetching while keeping payload size to a minimum, and doing this all the while ensuring data security. We faced many of these issues as we build our product, so we decided to give GraphQL a try.
GraphQL, a relatively new data query and manipulation language, promises to simplify client-server communication. Used correctly, it can provide a clean and performant way to communicate. While GraphQL is a statically-typed query language, using it from a statically-typed language such as Scala presents interesting challenges and opportunities.
This talk will explore what we learned from that adoption. We will focus on both server-side and client-side aspects of implementing GraphQL.