Market research · Reviewed

Architecture-enforcer competitive audit

What established architecture-rule tools document about their enforcement models, where their approaches differ, and which claims need more than a documentation review.

Scope and method

A focused review of public documentation for architecture-rule tools and adjacent code-analysis workflows: ArchUnit for Java, ArchUnitTS for TypeScript and JavaScript, dependency-cruiser for dependency rules, and SonarQube Server Design and Architecture documentation.

Compared the enforcement model, documented language scope, and the way each source says teams run or act on checks. Sources are vendor or project documentation, reviewed September 30, 2026. This is a documentation review, not a hands-on product trial.

Research findings

What the public evidence supports

  1. Finding 01

    A common model is to keep architecture rules beside the test suite.

    ArchUnit describes importing Java bytecode, expressing dependency and layer rules, and evaluating them with ordinary Java test frameworks. ArchUnitTS presents a similar workflow for TypeScript and JavaScript, including integrations with Vitest, Jest, Jasmine, and runner-neutral calls.

    Why it matters: For teams already relying on tests and CI, architecture checks can fit into an established developer workflow. The tradeoff is that teams own the rules and decide when and where those tests run.

    Source 1Source 2

  2. Finding 02

    Dependency graph tools expose explicit, tunable boundary rules.

    dependency-cruiser rules match a source module and a destination module. Rules can be forbidden, named, assigned a severity, and configured to return a non-zero result for build-breaking violations. Its reference also documents checks for cycles and dependencies between selected paths.

    Why it matters: This makes the policy itself inspectable in configuration. Teams should compare the rule language and graph coverage against their own module layout before choosing a tool.

    Source 3Source 4

  3. Finding 03

    Language coverage and execution point are practical selection filters.

    The reviewed sources describe different scopes: the ArchUnit user guide focuses on Java bytecode; ArchUnitTS targets TypeScript and JavaScript; dependency-cruiser describes JavaScript, TypeScript, and CoffeeScript dependency graphs. Their documented integration points also differ, from test frameworks to configurable dependency analysis.

    Why it matters: A useful evaluation starts with supported languages and the repository’s preferred enforcement point, then compares rule expressiveness and diagnostic detail.

    Source 1Source 2Source 3

  4. Finding 04

    One platform comparison is limited by an outdated deprecation notice.

    SonarQube Server’s versioned 2025.5 Design and Architecture overview describes architecture-as-code and CI verification for Java, while warning that architecture-as-code and cycle detection were deprecated pending removal in January 2026.

    Why it matters: Because the stated removal date predates this review, the page is evidence of the documented workflow at that version, not proof that the feature is available today. Confirm its current status with Sonar before treating it as an active alternative.

    Source 5

  5. Finding 05

    The public documentation does not settle claims about autonomous repair.

    The sources reviewed explain how teams define constraints and receive architecture findings through tests, dependency analysis, or CI. They do not provide enough evidence to conclude that any one tool is the only option for continuous monitoring or automated code changes.

    Why it matters: A defensible comparison of autonomous repair would require a separate, hands-on review of the same repositories and correction workflows. This audit does not claim a winner.

    Source 1Source 2Source 4Source 5

What this audit does not claim

Primary references

Sources and references

  1. Source 1 · ArchUnit (TNG)

    ArchUnit User Guide

    Java bytecode analysis, architecture rules, and test-framework execution.

    https://www.archunit.org/userguide/html/000_Index.html

  2. Source 2 · ArchUnit

    ArchUnitTS: Architecture testing for TypeScript

    TypeScript and JavaScript rules, test-runner integrations, and graph reports.

    https://www.archunit.net/typescript/

  3. Source 3 · dependency-cruiser contributors

    dependency-cruiser project documentation

    Project scope and supported dependency-analysis ecosystems.

    https://github.com/sverweij/dependency-cruiser

  4. Source 4 · dependency-cruiser contributors

    dependency-cruiser rules reference

    Rule structure, source and destination conditions, severity, and graph checks.

    https://github.com/sverweij/dependency-cruiser/blob/main/doc/rules-reference.md

  5. Source 5 · SonarSource

    Design and Architecture overview (SonarQube Server 2025.5)

    Versioned feature overview, language scope, CI workflow, and deprecation notice.

    https://docs.sonarsource.com/sonarqube-server/2025.5/design-and-architecture/overview

See HexPatrol in action

Explore the sample scan, boundary map, and suggested-fix preview in the live demo.

Try the live demo