Drift Detection
Automatically detect version mismatches, type changes, and API contract drift.
Overview
Drift detection surfaces inconsistencies across your service graph — version mismatches between services that depend on the same library, type definition changes, and OpenAPI contract drift.

Drift types
Version drift
Two services depend on the same package but use different versions. Example: api-gateway uses pydantic 2.12.5 while payment-processor uses pydantic 2.9.0.
Type drift
A shared type definition has diverged between services. Example: a UserResponse type has a created_at field in one service but not another.
OpenAPI drift
An API contract has changed between scans. Example: a new required field was added to a request body, potentially breaking consumers.
Viewing drift
Navigate to the Drift page in the sidebar. Drift items are shown in a table with:
| Column | Description |
|---|---|
| Dependency | The shared package or type |
| Service A | First service with this dependency |
| Service B | Second service with a different version |
| Severity | Critical, High, Medium, or Low |
| Detected | When the drift was first detected |
Severity levels
- Critical — Major version mismatch or breaking API change
- High — Minor version mismatch with known breaking changes
- Medium — Minor version mismatch
- Low — Patch version difference
Acknowledging drift
Some drift is intentional (e.g., gradual migration). Click Acknowledge on a drift item to mark it as reviewed. Acknowledged items are hidden from the default view but can be shown with the "Show acknowledged" filter.
API access
Query drift via the MCP server:
get_drift(service_name="api-gateway")