Skip to content
CAI
Software that uses CAICheck a score

xsreality/spring-modulith-with-ddd

54.1

Adequate · 22 September 2026

663

lines of production code

Java

primary language

7

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a library management application built on Spring Boot that manages book catalogs and borrowing operations. It provides endpoints for maintaining book inventory and processing patron holds and checkouts, secured via OAuth2/JWT authentication. The architecture enforces strict modular and hexagonal design principles, supported by comprehensive integration and unit tests.

Features

Add catalog management and book inventory endpoints

Introduced a new catalog management capability allowing users to add books to the inventory, view individual book details, and list all books. The change adds a REST controller with endpoints for creating and retrieving book records, backed by a new domain model and application service layer.

src/main/java/example/catalog · high confidence

Add library borrowing and hold management capabilities

Users can now place holds on books, check out held items, and view hold status via the new CirculationDesk service and REST endpoints. The system introduces domain models for Book, Hold, and Patron, with a hexagonal architecture (application, domain, infrastructure layers) and Spring Security integration for authenticated user context in the borrow module.

src/main/java/example/borrow · high confidence

Behavioural changes

Introduces Spring Modulith and OAuth2/JWT authentication

The application now uses Spring Modulith to structure the codebase, with the main entry point annotated with @Modulithic. Additionally, web security is configured to enforce OAuth2 resource server authentication using JWTs, while allowing public access to Swagger UI and API documentation endpoints.

src/main/java/example · high confidence

Test coverage

Added integration and unit tests for the library borrowing system; Added test data for borrow and catalog book entities; Added tests for catalog module architecture and integration.

Dependencies

Initial project setup with Spring Boot 4.0.6 and Java 23

The project is initialized with Spring Boot 4.0.6, targeting Java 23, and includes dependencies for Spring Modulith, JPA, Security (OAuth2), SpringDoc OpenAPI, and JMolecules (layered, hexagonal, onion, and DDD architectures). The build is configured with the Maven Compiler Plugin 3.15.0 and Spring Modulith BOM 2.0.5, with test dependencies for ArchUnit and Spring Modulith testing.

(dependencies) · high 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 52 → 54 (+1.8)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (+0.0)
  • Architecture 69 → 69 (+0.0)
  • Maturity 52 → 57 (+4.3)
  • Readiness 34 → 36 (+1.9)
  • Security 92 → 93 (+1.2)
  • Domain Modelling 100 → 95 (-5.0)

Resolved (7)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • No exposed public API
  • Scanner failed to run — not a clean result
  • Test reliability not included
  • change coupling unreadable for .java — no production change history could be paired for this repository's own source
  • dormant codebase — no living knowledge left to concentrate

New (14)

  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • High IaC: WD-COMPOSE-0002 (docker-compose.yml)
  • Medium IaC: WD-COMPOSE-0002 (docker-compose.yml)
  • No ADRs found
  • No assertions: addBookToCatalogFailsWithNonStaff (src/test/java/example/catalog/CatalogControllerIT.java)
  • No assertions: addBookToCatalogSucceedsWithStaff (src/test/java/example/catalog/CatalogControllerIT.java)
  • No assertions: checkoutBookRestCall (src/test/java/example/borrow/CirculationDeskControllerIT.java)
  • No assertions: createModulithsDocumentation (src/test/java/example/SpringModulithTests.java)
  • No assertions: patronCannotCheckoutBookHeldBySomeoneElse (src/test/java/example/borrow/CirculationDeskTest.java)
  • No assertions: placeHoldRestCall (src/test/java/example/borrow/CirculationDeskControllerIT.java)
  • Scanner failed to run — not a clean result
  • Scanner failed to run — not a clean result

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

Survey your own repository

xsreality/spring-modulith-with-ddd 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 bbbabe06d3af9ddd78c5699ca7b4dab36792ee8c — 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-90d5d2fe38ee.