Graph Pruning for Federated GraphQL | Cosmo by WunderGraph - WunderGraph
Find unused fields before they become technical debt
Graph Pruning uses real traffic data to identify unused fields, track deprecated fields still in use, and enforce deprecation before deletion. Available on Pro and Enterprise.
The problem
Schemas grow. Fields rarely leave.
Without usage data, there is no safe way to know which fields to remove, which deprecated fields still have traffic, or which deletions need a warning first.
Schemas accumulate unused fields over time
Teams add fields speculatively. Features are removed but fields remain. Without usage data, there is no way to know which fields are safe to remove.
Deprecated fields linger indefinitely
Fields are marked @deprecated but never removed. Without tracking which deprecated fields still receive traffic, teams cannot safely complete the cleanup.
Deleting fields without prior deprecation breaks consumers
Removing a field that was never formally deprecated gives consumers no warning. A deletion policy that requires deprecation first protects downstream teams.
Our solution
Usage-based schema pruning
Graph Pruning runs during schema checks and queries real traffic data to flag unused fields, track lingering deprecated fields, and block deletions that skipped the deprecation step.
From check to clean schema
- Graph Pruning rules run during schema check operations alongside other lint and breaking change checks.
- The linter analyzes the schema and queries the analytics pipeline for field usage data.
UNUSED_FIELDSidentifies fields with no usage within the check period.DEPRECATED_FIELDSflags deprecated fields still present in the schema.REQUIRE_DEPRECATION_BEFORE_DELETIONfails checks that attempt to delete fields not previously marked as @deprecated.- A grace period can be configured to prevent false positives on recently published fields.
Real traffic data. Informed decisions. Cleaner schemas.
Before & After
| Before Cosmo | With Cosmo |
|---|---|
| Unknown which fields clients actually use | UNUSED_FIELDS rule flags fields with no traffic in the check period |
| Deprecated fields remain in the schema indefinitely | DEPRECATED_FIELDS rule identifies deprecated fields still present |
| Fields deleted without warning to consumers | REQUIRE_DEPRECATION_BEFORE_DELETION fails checks that skip deprecation |
| False positives on recently added fields | Configurable grace period before rules are enforced |
The three Graph Pruning rules
UNUSED_FIELDS: Identifies fields with no usage within the configured check period.DEPRECATED_FIELDS: Flags deprecated fields that still appear in the schema.REQUIRE_DEPRECATION_BEFORE_DELETION: Fails checks when fields are deleted without prior @deprecated marking.
Schema Usage Check Period is configurable on Enterprise. On other plans, the period is determined by billing plan limits.
How Graph Pruning works in Cosmo
Enable: Enable Graph Pruning in Cosmo Studio for the namespace. Select which of the three rules to activate.
Configure: Set severity (error or warning) and grace period for each rule. Enterprise customers can also configure the schema usage check period.
Check: Run
wgc subgraph check. Graph Pruning evaluates the schema against usage data from the analytics pipeline.Act: Review flagged fields. Remove fields with no usage, communicate deprecation for fields still in use, or add @deprecated before deletion.
What Graph Pruning gives you
Usage-based analysis
Rules check field usage against real traffic data from the analytics pipeline. Decisions are based on actual queries, not estimates.
Grace period
Configure a time window after schema publication before rules are enforced. Prevents false positives on fields published but not yet widely adopted.
Three rules, independent configuration
UNUSED_FIELDS, DEPRECATED_FIELDS, and REQUIRE_DEPRECATION_BEFORE_DELETION each have their own severity and grace period settings.
Configurable check period
Enterprise customers can set the time window for usage analysis. Other plans use the period defined by their billing plan.
Remove fields with confidence
Use real traffic data to identify what is safe to remove. Available on Pro and Enterprise.