Control Your GraphQL Destiny with Inigo (Don’t Get Vendor Locked)

Eric Murphy·

Overview

GraphQL is an excellent technology with a great ecosystem, and we’re still early in the adoption curve for enterprises that maintain a large set of GraphQL APIs. Yet, controlling your destiny with GraphQL is challenging for various reasons, such as the lack of visibility and security in GraphQL itself. When using GraphQL in production at scale, additional tools and services are needed to maintain your APIs.

For some GraphQL vendors, such as Apollo Graph Inc., moving GraphQL tools and services into a SaaS offering, GraphOS, makes sense. Yet, Apollo’s goal is to host your entire GraphQL infrastructure, including the GraphQL gateway. Additionally, GraphOS offers observability and security features that are proprietary to the Apollo tech stack. This comprehensive model naturally causes vendor lock-in and gives Apollo control over your GraphQL destiny. To make matters worse, Apollo tech stack users are being forced into upgrading and/or migrating technologies, and lower-tier offerings of GraphOS have become unaffordable for many.

Another example is AWS AppSync, which is an AWS-native GraphQL gateway. What if you want to migrate to Google Cloud and Hasura, for example? This is a very different tech stack, but it’s still possible to migrate away while keeping GraphQL technologies agnostic to your tech stack. By staying agile with your GraphQL deployments and not putting all your eggs in a single GraphQL basket, you can maintain some level of control over your GraphQL destiny. This is where neutral GraphQL vendors like Inigo can help.

You can make confident decisions on your future with a GraphQL vendor by deeply understanding your GraphQL graph, including specific key measures. It’s impossible to predict the true cost of migrating to another GraphQL gateway or server without understanding the impact on your team and API users. By understanding this true cost, you can take control of your destiny with GraphQL.

Knowledge is Power: Key Measures to Understanding Your Graph

Inigo’s purpose is to provide observability, security, and manageability of your GraphQL APIs while still being agostic to what GraphQL server or gateway you might be running. If you’re considering changing your GraphQL server or gateway, Inigo gives you the data and insights you need to make the right decisions on moving forward.

So, what metrics and actionable intelligence does Inigo provide that allows you to control your GraphQL destiny? Let’s walk through them:

1. Overall Utilization of Your Graph, Including Subgraphs

Having a high-level view of your overall graph utilization is essential so you know where to focus first on analyzing your graph. Having the big-picture view will allow you to plan and prioritize a deeper analysis of your graph. By having actionable insights, you will be able to move forward with further analysis and decision-making.

Actionable Intelligence:

  • What parts of your graph and subgraphs are heavily utilized by your most important API users
  • What parts of your graph and subgraphs are underutilized or unutilized
  • Where errors are most likely to pop up and why they are occurring
  • Where are the major performance bottlenecks, especially when your graph is under a heavy load

2. What GraphQL Operations and Sections of Your Graph Are Heavily Used

By understanding specifics about where the heavy usage is in your graph, you can take mitigating steps to reduce the risk of outages or errors when you modernize or migrate the GraphQL server or gateway underpinning your graph.

Actionable Intelligence:

  • The most executed operations in your graph and how often are they executed
  • Sections of your graph, including objects and fields that are the most heavily consumed
  • What subgraphs support the most used parts of your supergraph
  • What sections of your graph need the most focus and careful planning during a potential GraphQL server or gateway change

3. What Areas of Your Graph Are Underutilized or Initialized

When modernizing or migrating GraphQL technologies, it’s best to reduce the scope as much as possible and eliminate unused functionality to achieve a quick win. With a reduced scope, less work needs to be done, and the risk level goes down.

Actionable Intelligence:

  • The operations in your graph that have not been used over the last X number of days
  • The least executed operations in your graph
  • The least used objects and fields in your graph
  • The least used subgraphs
  • What underutilized areas of the graph could be deprecated, replaced, or eliminated immediately

4. Who is Using the GraphQL API and How They Are Using It

Some users of your API are likely to be more business-critical than others, and understanding their specific patterns of usage of your graph is critical to adequately supporting them while introducing change into your GraphQL deployment.

Actionable Intelligence:

  • Who are the most common users of the most heavily used parts of your graph
  • What GraphQL operations your high-priority users are calling daily
  • What objects and fields your high-priority users are consuming

5. Performance Bottlenecks in Your Graph

You may consider changing the underpinnings of your graph if performance bottlenecks originate from the GraphQL server or gateway. Expensive queries with significant depth and height can also cause bottlenecks, especially for frequently used queries.

Actionable Intelligence:

  • The average and p95 latencies of the most commonly called operations in your graph
  • The heights and depths of the worst-performing queries in your graph
  • What users are most impacted by the bottlenecks in your graph
  • How many times per day are bottlenecked operations are called
  • What subgraphs are causing bottlenecks
  • What additional latency the supergraph query planning is adding

6. Errors and Hotspots in Your Graph

Not only do you want to understand where, when, and why errors are occurring in your graph, it’s essential to know where the hotspots are. These hotspots indicate where additional errors are likely to occur, especially when introducing change.

Actionable Intelligence:

  • Where, when, and why do errors occur, and how often do they occur
  • What users are most impacted by these errors
  • Where are hotspots in the graph, such as high p95 latencies that may trigger additional errors, such as timeouts

Take Action to Control Your GraphQL Destiny

You will likely face four choices when it comes to controlling your GraphQL destiny when working with a GraphQL vendor such as Apollo Graph, Inc.:

  1. Kick the can by delaying a decision while performing more research and groundwork in the interim. You may be able to negotiate extended commercial support from the GraphQL vendor to buy time.
  2. Stay the course with the current open-source GraphQL server or gateway technology and continue forward self-supported for the foreseeable future. Eliminate the proprietary parts of your GraphQL deployment, and consider alternatives to a complete switch out.
  3. Switch to a comprehensive SaaS offering like GraphOS to maintain commercial support. Prepare for this to be a multi-year arrangement with vendor lock-in. Try to have an exit plan and avoid proprietary features of the SaaS when possible.
  4. Migrate to a different GraphQL vendor that fits your business and technology needs while pricing in the cost of performing the migration. The GraphQL vendor ecosystem is growing and maturing, and new options will be available in the coming months and years. Try to remain agile moving forward.

By capturing the key measures outlined in this article, making a decision will be straightforward, as you will have the data you need to weigh the pros and cons of each option. You and your team will be able to move forward with confidence that you made the right decision!

For example, suppose you have a very brittle graph with numerous hotspots and error-prone operations. In that case, kick the can, focus on improving the underlying GraphQL services, and start decoupling them from a vendor-specific GraphQL implementation. With the actionable intelligence gleaned from Inigo, you can plan and prioritize your efforts to get the quick wins you need before reevaluating your options.

Inigo Makes the Journey Possible

No matter your decision, Inigo can help you along the way. Using the key measures and actionable intelligence, you can continue to monitor for improvements over time and make sure you are prepared to introduce change, whether it’s driven by moving to a new GraphQL server or gateway or potentially adopting a SaaS that offers a cloud-hosted gateway.

For example, suppose you need to modify your GraphQL schema to refactor or prune your graph. In that case, you can closely monitor the ongoing graph usage to ensure that your API users no longer use deprecated operations, objects, and fields. This process will take time, and Inigo makes it easy!

Try Inigo today to start taking control of your GraphQL destiny! Learn more and get started with a free trial at app.inigo.io.

Get started with Inigo
Join our newsletter