W Edwards Deming’s 14 Points

W. Edwards Deming, an electrical engineer, statistician (i.e. an AI expert!), professor, author, lecturer, and management consultant wrote some extremely prescient and wise things in his day. He became pivotal in how statistical analysis could be used to get better quality control. In the 1930s, and in turn these methods helped immensely in post- World... Continue reading →

GraphQL Pagination with Java Spring Boot’s “GraphQL for Spring”

There are several different approaches for implementing pagination in GraphQL, and specifically with Java Spring Boot. The type of pattern to use depends on numerous factors like the size of the dataset, ordering requirements, and related performance characteristics. This post doesn’t cover the logic or details needed to determine the type of paging to use,... Continue reading →

DataLoader for GraphQL Implementations

A popular library used in GraphQL implementations is called DataLoader, and in many ways the name is somewhat descriptive of its purpose. As described in the JavaScript repo for the Node.js implementation for GraphQL “DataLoader is a generic utility to be used as part of your application’s data fetching layer to provide a simplified and... Continue reading →

Single Responsibility Principle for GraphQL API Resolvers

The Single Responsibility Principle (SRP) states that a class or module should have only one reason to change. It emphasizes the importance of keeping modules or components focused on a single task, reducing their complexity, and increasing maintainability. SRP defined. In GraphQL API development the importance, and need, of maintaining code quality and scalability is... Continue reading →

GraphQL Error Handling

The following post is based on some of the common error handling techniques I’ve seen in use when implementing GraphQL APIs. The following examples include; Objects in the Response. Union Types. Middleware Custom Error Types Extensions Bubbling & Partial Results To elaborate, a basic definition of each of these follows with a slightly deeper dive... Continue reading →