Urgent.News

What's breaking now, across thousands of outlets.

Tech

Building Enola, Part 3: Linking Architecture Across Repositories

The earlier article, Cross-repository code analysis for multi-repo architectures , explains why repository boundaries hide system dependencies. This part describes how Enola reconstructs those dependencies. The process starts after extraction. Language-specific extractors have already converted source code and contracts into a shared fact model. The cross-repository linker reads those facts,…

In this third part of the Enola architecture series, the focus is on how the system reconstructs dependencies across repositories. After the extraction of language-specific code and contracts, the cross-repository linker reads shared facts and collects evidence from protocol-specific signals to establish relationships. The linker compares route facts expressed in a uniform vocabulary, regardless of the source language or framework.

Enola supports various signals, such as HTTP calls, package imports, Kafka topic ownership, and GraphQL consumption, each contributing evidence through a common interface. Directional signals establish consumer-provider relationships, while symmetric signals identify coupling without assigning a direction. Shared symbols are treated as depends_on edges only if supported by additional signals.

The HTTP signal, for instance, indexes server routes by normalized method and path, then evaluates client routes against this index. Exact string comparison is insufficient, so Enola normalizes parameter syntax, leading slashes, and trailing path segments. Suffix matching is subject to limits to avoid assigning generic paths to arbitrary providers.

The confidence level reflects the match's strength, with verified matches having complete path alignment and probable matches depending on suffix normalization or provider disambiguation.

gRPC and Kafka also utilize specific signals for dependency reconstruction. gRPC facts use wire identity to match declared RPC identities, while Kafka topic ownership relies on topic facts and ownership conventions. The materialization of dependencies involves combining evidence from multiple signals before producing a cross-repository dependency fact, with evidence grouped by type and aggregated when applicable. Coverage records what did not resolve, distinguishing external, declared, and unresolved calls.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

The Gate That Expires After One Message

The Gate That Expires After One Message Something goes wrong at 2am. You pull the logs. The agent had authorization, of course it did. You gave it authorization six hours ago when the session started.

More from Tuesday 18 August →