Overview
The Dema GraphQL API follows a continuous evolution approach rather than traditional API versioning. We evolve the schema incrementally using additive changes and deprecation, avoiding breaking changes whenever possible.The Dema API does not use versioned endpoints. All changes are made to the same endpoint while maintaining backward compatibility through deprecation practices.
Our Versioning Approach
The Dema API evolves continuously without version bumps. We make changes by:- Adding new fields or types without modifying existing ones
- Adding new enum values to existing enums
- Deprecating fields instead of removing them immediately
- Maintaining backward compatibility so your existing queries continue to work
Changes That Don’t Require Versioning
The following changes are non-breaking and will be deployed without version updates:- Adding new fields or types
- Adding new enum values
- Making a non-null field nullable (widening the type)
- Any additive changes that don’t alter existing field signatures
Changes That Require Deprecation
When we need to make breaking changes, we use deprecation with a migration period. Breaking changes include:- Changing field names or types - We deprecate the old field and add the new one
- Removing fields - Fields are always deprecated before removal
- Changing nullability - Making a nullable field non-null requires deprecation
- Changing argument types - Breaking argument changes go through deprecation
Deprecation Policy
When we need to remove or replace a field, we follow this deprecation process:Deprecation Timeline
We maintain deprecated fields for 90 days before removal. This gives you time to migrate to the new field or structure.Deprecation Reason Format
All deprecated fields in the Dema API use this standardized format:- The replacement field or approach to use
- The exact removal date in YYYY-MM-DD format
- Clear guidance on how to migrate
Example: Deprecation in Practice
When we deprecate a field, both the old and new fields are available during the 90-day period:Checking for Deprecations
You can check for deprecated fields in the Dema API schema using GraphQL introspection:Best Practices for API Consumers
- Monitor deprecations: Use introspection to check for deprecated fields in your queries
- Migrate early: Start using new fields as soon as they’re available
- Test thoroughly: Verify your application works with new fields before the removal date

