Netflix's Quasar is a system designed to assess the impact of library API changes across a vast, independently evolving microservice ecosystem. It indexes symbol definitions and references, enabling producers to understand the blast radius of proposed changes before release, thereby mitigating breaking changes and facilitating intentional library evolution. This system highlights the challenges of managing dependencies and ensuring compatibility in highly distributed environments.
Read original on Netflix Tech BlogIn a large, distributed system like Netflix's, with numerous independent repositories and shared Java libraries, managing API compatibility is a significant challenge. A change in one library can have a widespread impact on many downstream consumers. Traditional methods like API diffs, dependency graphs, or text searches are often insufficient to accurately determine which specific consumers are using a changed API and on which versions they depend.
Producers of shared libraries often face a dilemma: evolve the library to add new features or remove deprecated APIs, but risk breaking consumer applications. Without precise visibility into live API usage, they must either delay necessary changes indefinitely or proceed with high risk, potentially causing widespread failures. This problem is exacerbated by the growing use of coding agents that can accelerate local changes but lack cross-repository context for downstream risk assessment.
The "Blast Radius" Challenge
The core problem Quasar addresses is determining the "blast radius" of an API change: how many and which consumers will be affected by a modification or removal of an API symbol. This requires more than just knowing dependencies; it requires knowing *exact usage* of specific symbol versions.
Quasar is built on SCIP (Semantic Code Intelligence Protocol), an open interchange format for semantic code intelligence. Language-specific indexers generate SCIP indexes that encode definitions, references, and relationships, which are then submitted to Quasar's ingestion service. This service stores API definitions and consumer references in Parquet format within Amazon S3. During pull-request review, Quasar uses Amazon Athena to query these indexed data, comparing base and head definitions and counting direct consumer references.
SELECT c.change_id, 'DIRECT_REFERENCE' AS evidence_kind, r.scm_type, r.org, r.repo, r.dep_version, r.file_path FROM requested_changes c JOIN quasar.symbol_refs r ON r.symbol_canonical = c.target_canonicalQuasar provides a comprehensive impact report that includes the type of change (e.g., REMOVED), the specific symbol affected, the number of affected repositories, their version distribution, and sample consumer locations. This rich evidence allows library producers to make informed decisions, such as coordinating migrations, retaining deprecated methods, or delaying removals, thereby promoting intentional evolution of shared libraries and preventing widespread system instability.
A key goal for Quasar is to integrate this impact analysis earlier into the development lifecycle, ideally during code authoring by developers or coding agents. Providing context about public API changes and their potential blast radius before a pull request is even opened can significantly reduce rework and risk. While PR analysis will remain crucial for final verification, early feedback empowers developers to proactively address compatibility issues.