Skip to content
CAI
Software that uses CAICheck a score

ZaTribune/springboot-ddd-demo

51.3

Adequate · 21 September 2026

2.5k

lines of production code

Java

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is an order management service built on Spring Boot 3.1.5 and Java 21, structured into application, domain, and infrastructure layers. It handles core business logic for orders, payments, and shipping status, utilizing JPA for data persistence and Spring events for decoupled processing. The system has removed legacy user management and Keycloak authentication, focusing instead on internal order and shipping workflows.

Features

Renames modules and introduces new domain elements for shipping and orders

The application, domain, and infrastructure modules are renamed to application, domain, and infrastructure respectively. Within the domain layer, new domain elements are introduced including Order, Payment, Customer, and ShippingStatus, alongside DTOs like ShippingStatusResponse and SingleOrderResponse. A custom Spring event and event bus mechanism are added to handle shipping initialization and authorization events. The infrastructure layer adds JPA entities, repositories, and mappers for Address, Order, Payment, Product, and Shipping, along with a service implementation that processes orders and triggers shipping events.

application, domain, infrastructure · high confidence

Removals

Removal of legacy user management and security configuration

The backend has removed the legacy user management implementation and associated security configurations. This includes the deletion of the \UserController\ and \UserManagementService\ (and its implementation) which previously handled user creation, updates, and authentication via Keycloak. Additionally, the \SecurityConfig\ for Keycloak integration, along with related security utilities like \CredentialsUtils\ and \TribuneKeycloakAuthenticationFailureHandler\, have been removed. The \application.yml\ configuration for Keycloak and the local development Docker Compose setup for Keycloak and PostgreSQL have also been deleted, indicating a significant shift away from the previous authentication and local development infrastructure.

backend-application, backend-domain, backend-infrastructure · high confidence

Dependencies

Upgrade to Java 21 and Spring Boot 3.1.5; simplify module structure

The project has been upgraded to use Java 21 as the minimum compiler version and Spring Boot 3.1.5 as the base framework. This includes adding MapStruct and updated Lombok dependencies, removing legacy Swagger/Springfox dependencies in favor of SpringDoc OpenAPI, and simplifying the Maven module structure by renaming backend-\* modules to domain, api-definition, infrastructure, and application. The build system now uses property placeholders for plugin versions and removes the Jib Docker plugin configuration.

(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 55 → 51 (-3.7)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 99 (-0.7)
  • Architecture 100 → 85 (-15.0)
  • Maturity 74 → 74 (+0.0)
  • Readiness 26 → 28 (+2.5)
  • Security 95 → 95 (+0.0)
  • Domain Modelling 74 → 59 (-15.5)

Resolved (9)

  • 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
  • early-stage repository — too little history to judge knowledge freshness
  • git history depth insufficient
  • git history depth insufficient
  • single-maintainer — knowledge-concentration (bus factor) risk

New (12)

  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Documentation: no contributor guidance (README.md)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • No assertions (empty test): contextLoads (application/src/test/java/com/tribune/application/ApplicationTests.java)
  • No assertions (empty test): contextLoads (infrastructure/src/test/java/com/tribune/backend/domain/DataApplicationTests.java)
  • Scanner failed to run — not a clean result
  • Scanner failed to run — not a clean result
  • Test project verifies nothing: application (application/src/test/java/com/tribune/application/ApplicationTests.java)
  • Test project verifies nothing: infrastructure (infrastructure/src/test/java/com/tribune/backend/domain/DataApplicationTests.java)
  • TodoComment (domain/src/main/java/com/tribune/backend/domain/context/element/Entity.java)
  • TodoComment (domain/src/main/java/com/tribune/backend/domain/context/element/customer/Customer.java)

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

Survey your own repository

ZaTribune/springboot-ddd-demo 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 21 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 e21d6f5d40b8ac1a93909d70f2e1cf5254a56e78 — 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-fa71c66cabd8.