Skip to content
graphql-architect logo

GraphQL Architect Skill

graphql-architect

GraphQL schema and federation expert specializing in resolver optimization, subscriptions, and API gateway patterns

SKILL.md

Full skill instructions

GraphQL Architect Skill

Purpose

Provides expert GraphQL architecture expertise specializing in schema design, federation patterns, resolver optimization, and real-time subscriptions. Builds performant, type-safe GraphQL APIs with N+1 prevention, efficient caching, and scalable API gateway patterns across distributed systems.

When to Use

  • Designing GraphQL schema from scratch for new APIs
  • Implementing GraphQL federation across multiple services
  • Optimizing resolvers to prevent N+1 queries (DataLoader implementation)
  • Building real-time features with GraphQL subscriptions
  • Migrating from REST to GraphQL or designing hybrid REST+GraphQL APIs
  • Implementing GraphQL API gateway patterns

Quick Start

Invoke this skill when:

  • Designing new GraphQL schemas or federation architecture
  • Solving N+1 query performance issues
  • Implementing real-time subscriptions
  • Migrating REST APIs to GraphQL

Do NOT invoke when:

  • Simple REST API is sufficient (use api-designer)
  • Database schema design without API layer (use database-administrator)
  • Frontend data fetching only (use frontend-developer)

Core Capabilities

Schema Design

  • Creating type-safe GraphQL schemas with best practices
  • Implementing pagination patterns (Relay, offset-based)
  • Designing mutations with input validation and error handling
  • Managing schema evolution and backward compatibility

Federation Architecture

  • Implementing Apollo Federation for microservices
  • Configuring schema stitching for service composition
  • Managing cross-service queries and mutations
  • Setting up API gateways for schema composition

Resolver Optimization

  • Implementing DataLoader for N+1 prevention
  • Caching strategies at resolver and field levels
  • Query complexity analysis and depth limiting
  • Persisted queries for production optimization

Real-Time Subscriptions

  • Implementing WebSocket-based subscriptions
  • Managing subscription lifecycle and cleanup
  • Integrating with event-driven backends
  • Handling subscription authentication and authorization

Decision Framework

GraphQL vs REST Decision Matrix

FactorUse GraphQLUse REST
Client typesMultiple clients with different needsSingle client with predictable needs
Data relationshipsHighly nested, interconnected dataFlat resources with few relationships
Over-fetchingClients need different subsetsClients typically need all fields
Under-fetchingAvoid multiple round tripsSingle endpoint provides enough
Schema evolutionFrequent changes, backward compatStable API, versioning acceptable
Real-timeSubscriptions neededPolling or webhooks sufficient

Schema Design Decision Tree

Schema Design Requirements
│
├─ Single service (monolith)?
│  └─ Schema-first design with single schema
│
├─ Multiple microservices?
│  ├─ Services owned by different teams?
│  │  └─ Apollo Federation
│  └─ Services owned by same team?
│     └─ Schema stitching (simpler)
│
├─ Existing REST APIs to wrap?
│  └─ GraphQL wrapper layer
│
└─ Need backward compatibility?
   └─ Hybrid REST + GraphQL

N+1 Prevention Strategy

Resolver Implementation
│
├─ Field resolves to single related entity?
│  └─ DataLoader with batching
│
├─ Field resolves to list of related entities?
│  ├─ List size always small (<10)?
│  │  └─ Direct query acceptable
│  └─ List size unbounded?
│     └─ DataLoader with batching + pagination
│
├─ Nested resolvers (users → posts → comments)?
│  └─ Multi-level DataLoaders
│
└─ Aggregations or counts?
   └─ Separate DataLoader for counts

Core Workflow: DataLoader Implementation

Problem: N+1 queries killing performance

// WITHOUT DataLoader - N+1 problem
const resolvers = {
  Post: {
    author: async (post, _, { db }) => {
      // Executed once per post (N+1 problem!)
      return db.User.findByPk(post.userId);
    }
  }
};
// Query for 100 posts triggers 101 DB queries

Solution: Batch with DataLoader

import DataLoader from 'dataloader';

// Create loader per request (important!)
function createLoaders(db) {
  return {
    userLoader: new DataLoader(async (userIds) => {
      const users = await db.User.findAll({
        where: { id: userIds }
      });
      // Return in same order as requested IDs
      const userMap = new Map(users.map(u => [u.id, u]));
      return userIds.map(id => userMap.get(id));
    })
  };
}

// Resolver using DataLoader
const resolvers = {
  Post: {
    author: (post, _, { loaders }) => {
      return loaders.userLoader.load(post.userId);
    }
  }
};
// Same query now triggers 2 queries total!

Quick Reference: Schema Best Practices

Pagination Pattern (Relay-style)

type Query {
  users(first: Int, after: String, last: Int, before: String): UserConnection!
}

type UserConnection {
  edges: [UserEdge!]!
  pageInfo: PageInfo!
  totalCount: Int!
}

type UserEdge {
  node: User!
  cursor: String!
}

type PageInfo {
  hasNextPage: Boolean!
  hasPreviousPage: Boolean!
  startCursor: String
  endCursor: String
}

Error Handling Pattern

type Mutation {
  createUser(input: CreateUserInput!): CreateUserPayload!
}

type CreateUserPayload {
  user: User
  errors: [UserError!]!
}

type UserError {
  field: String
  message: String!
  code: ErrorCode!
}

enum ErrorCode {
  VALIDATION_ERROR
  NOT_FOUND
  UNAUTHORIZED
  CONFLICT
}

Red Flags - When to Escalate

ObservationWhy Escalate
Query complexity explosionUnbounded nested queries causing DoS
Federation circular dependenciesSchema design issue
10K+ concurrent subscriptionsInfrastructure architecture
Schema versioning across 50+ fieldsBreaking change management
Cross-service transaction needsDistributed systems pattern

Additional Resources

  • Detailed Technical Reference: See REFERENCE.md

    • Apollo Federation setup workflow
    • Field-level authorization directives
    • Query complexity limiting
  • Code Examples & Patterns: See EXAMPLES.md

    • Anti-patterns (N+1 queries, no complexity limits)
    • Integration patterns with other skills
    • Complete resolver implementations

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View