Skip to content
CAI
Software that uses CAICheck a score

ShowMeYourCodeYouTube/hexagonal-architecture

74.7

Strong · 22 September 2026

783

lines of production code

Kotlin

primary language

6

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a Spring Boot application that serves as a comparative showcase for four distinct architectural patterns—Clean, Component-based, Hexagonal, and Onion—each implemented to manage products via separate REST API endpoints. It provides a complete development environment for these patterns, including Swagger UI for API documentation and comprehensive integration tests to verify functionality across all implementations. The project is configured with modern Kotlin and Spring Boot dependencies, supported by build tools and code quality plugins.

Features

Introduce four distinct architectural implementations for product management

The application now provides four separate implementations for managing products, each following a different architectural pattern: Clean, Component-based, Hexagonal, and Onion. Each implementation exposes its own REST API endpoints (e.g., /api/clean/v1/products, /api/component/v1/products, /api/hexagonal/v1/products, /api/onion/v1/products) for adding and retrieving products. The codebase also includes a Swagger UI interface and an OpenAPI specification file to expose the API documentation for all four endpoints.

src/main · high confidence

Test coverage

Added integration tests for product management across multiple architecture styles

Added new integration tests for the clean, component, hexagonal, and onion architecture implementations. Each test suite verifies the full request/response cycle for creating and retrieving products, including validation of error handling for missing required fields. Additionally, a test configuration file and a removed placeholder test were added to support these new test suites.

src/test · high confidence

Dependencies

The project's build configuration has been updated to use Kotlin version 1.9.0 and Spring Boot 3.1.2, along with updated versions of the Spring Dependency Management plugin (1.1.3), SonarQube plugin (4.3.0.3225), and ktlint (11.5.1). New dependencies for Log4j2 and Jackson modules have been added, and test configurations have been adjusted to include XML and HTML reports for JaCoCo.

(dependencies) · medium confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 75 → 75 (-0.1)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 99 → 98 (-0.9)
  • Architecture 69 → 69 (+0.0)
  • Maturity 77 → 77 (+0.0)
  • Readiness 73 → 73 (+0.0)
  • Security 100 → 100 (+0.0)

Resolved (11)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Duplicated block (12 lines × 4) (src/main/kotlin/com/showmeyourcode/architecture/clean/adapters/api/ProductHandler.kt)
  • Duplicated block (20 lines × 2) (src/main/kotlin/com/showmeyourcode/architecture/component/config/BeanConfigurations.kt)
  • No exposed public API
  • Test reliability not included
  • The 'Technology' section lists only the framework (Spring Boot) without explaining what technologies or tools are used beyond that line. (README.md)
  • early-stage repository — too few commits for a meaningful bus factor
  • early-stage repository — too little history to judge knowledge freshness
  • git history depth insufficient
  • git history depth insufficient

New (11)

  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Documentation: no project overview (README.md)
  • Duplicated block (13 lines × 4) (src/main/kotlin/com/showmeyourcode/architecture/clean/adapters/db/InMemoryProductRepository.kt)
  • Duplicated block (14 lines × 2) (src/main/kotlin/com/showmeyourcode/architecture/component/component/productservice/internal/ProductService.kt)
  • Duplicated block (19 lines × 4) (src/main/kotlin/com/showmeyourcode/architecture/clean/adapters/api/ProductHandler.kt)
  • Duplicated block (22 lines × 2) (src/main/kotlin/com/showmeyourcode/architecture/component/config/BeanConfigurations.kt)
  • Duplicated block (7 lines × 4) (src/main/kotlin/com/showmeyourcode/architecture/clean/adapters/api/ProductHandler.kt)
  • Duplicated block (8 lines × 2) (src/main/kotlin/com/showmeyourcode/architecture/clean/usecase/ProductUseCaseImpl.kt)
  • Duplicated block (8 lines × 4) (src/main/kotlin/com/showmeyourcode/architecture/clean/adapters/api/ProductRoutes.kt)
  • Members sharing a duplicated core (4 members, 50+ identical tokens) (src/main/kotlin/com/showmeyourcode/architecture/clean/adapters/api/ProductHandler.kt)
  • No ADRs found

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

ShowMeYourCodeYouTube/hexagonal-architecture was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 22 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit a63617c5e990452e501f7d07386726454f5e9a17 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-821afab8930d.