Developer Experience
Boost developer velocity for graph consumers and contributors
The Developer Experience pillar focuses on enhancing developer productivity and satisfaction. This pillar promotes collaboration via effective schema management and streamlined workflows. It sets the stage for a platform that's both developer-friendly and cutting-edge, ensuring all developers can contribute efficiently.
Principles
Keep teams up to date with schema changes
Your GraphQL schema acts as a contract between graph contributors and consumers, so it's important that everyone stays up-to-date with changes. Automating schema change notifications streamlines communication by not relying on manual updates. This reduces the risk of errors and improves developer efficiency. It allows teams across the stack to adapt their workflows to accommodate the changes.
Automated notifications also facilitate stakeholder awareness. That means stakeholders can provide feedback or raise concerns, fostering a more collaborative and transparent development process.
Enable subgraph developers
To enhance overall developer efficiency, it's vital to reduce time-to-market for subgraph developers. Best practices include:
- Offering clear documentation on workflows for common failure scenarios like publish failures or failed schema checks
- Validating subgraph schemas during development to catch errors early
- Ensuring errors are surfaced for quick debugging
- Implementing a standard continuous integration and delivery system
Enable client developers
Improving client application development velocity is key to staying competitive. To achieve this, client developers need access to accurate documentation, testing best practices, and uniform tooling for code generation.
Deploying and publishing frequently to lower environments can also help to identify and resolve issues early. Additionally, using mocking before graph implementation and providing access to the schema can further improve velocity. Finally, contracts can provide focused documentation and tooling to help streamline the development process.
Use the supergraph to improve distributed systems
It's essential for any organization using GraphQL Federation to embrace best practices for microservices and distributed systems. These best practices include:
- Documenting a framework for splitting responsibilities across subgraphs
- Documenting best practices for entity resolvers
- Using GraphQL Federation appropriately for cross-domain orchestration
Onboard graph consumers and contributors
Effective onboarding for new developers is foundational for maximizing developer efficacy. Onboarding is particularly important in supergraph development, given the complexity of the technology involved. By investing in onboarding processes and tools, organizations can expedite the learning curve for new developers. This ultimately leads to faster development cycles and more efficient use of resources.
Learn more with the SAF assessment