Netflix TechBlog | Medium
Follow
Beyond API Compatibility: Building a Tool to Measure the Blast Radius of Library Changes
Netflix developed Quasar to provide visibility into the impact of Java library changes across its extensive repository ecosystem. Library producers often see API changes but lack insight into which consumers depend on altered symbols. This visibility is crucial, especially as coding agents increasingly participate in the development lifecycle.Quasar addresses this by indexing symbol definitions and references across Netflix repositories. It answers two key questions for producers: what changed in the library's public API and which repositories use those exact changed symbols. This transforms generic compatibility warnings into actionable evidence.Existing tools fall short; compatibility checkers identify contract changes but not usage, dependency graphs show declared reach but not actual calls, and text search can miss nuances. Quasar leverages SCIP, an open interchange format, allowing language-specific indexers to encode definitions and references. Quasar retains API definitions for library versions and commits, linking changes to exact usages regardless of independent indexing.When a CI build runs, indexers submit SCIP indexes to Quasar, storing API definitions and consumer references. During pull request review, Quasar compares indexed base and head definitions, counting direct consumer references using Amazon Athena. This data is exposed via REST, GraphQL, and MCP APIs.For a simplified API change, like a method removal, Quasar identifies repositories still calling the old method, their dependency versions, and file locations. This empowers producers to coordinate migrations before releasing breaking changes.Quasar provides detailed impact reports during pull request analysis, classifying symbols as added, removed, or modified, then analyzing consumer impact for removals and modifications. It shows affected repositories, version distribution, sample consumer locations, and library criticality. This enables producers to make informed decisions, such as deprecating, publishing migration paths, or coordinating broader migrations.The system's polyglot foundation, based on SCIP, allows it to index multiple language ecosystems. It can trace complex relationships, like Protobuf definitions through generated Java members, to linked consumer repositories. While Quasar assesses JVM and Protobuf API changes, full breaking API change assessment for other languages like Go or Python is ongoing.Quasar currently surfaces findings on pull requests, supporting pre-merge decisions. The goal is to integrate this context earlier into the coding workflow, allowing agents to recognize public API edits and query Quasar before opening a pull request. This proactive approach helps agents make informed decisions, though pull request analysis remains vital for verification.