Questions
Principled GraphQL
10 keys to success From Principled GraphQL.
One-Graph
Your company should have one unified graph, instead of multiple graphs created by each team.
Federated Implementation
Though there is only one graph, the implementation of that graph should be federated across multiple teams.
Track the Schema in a Registry
There should be a single source of truth for registering and tracking the graph.
Abstract, Demand-Oriented Schema
The schema should act as an abstraction layer that provides flexibility to consumers while hiding service implementation details.
Use an Agile Approach to Schema Development
The schema should be built incrementally based on actual requirements and evolve smoothly over time.
Iteratively Improve Performance
Performance management should be a continuous, data-driven process, adapting smoothly to changing query loads and service implementations.
Use Graph Metadata to Empower Developers
Developers should be equipped with rich awareness of the graph throughout the entire development process.
Access and Demand Control
Grant access to the graph on a per-client basis, and manage what and how clients can access it.
Structured Logging
Capture structured logs of all graph operations and leverage them as the primary tool for understanding graph usage.
Separate the GraphQL layer from the Service Layer
Adopt a layered architecture with graph functionality broken into a separate tier rather than baked into every service.
Resources
Essential
- Principled GraphQL - Book on GraphQL from the folks at Apollo.