Skip to content
CAI
Software that uses CAICheck a score

yahyanouali/event-sourcing-cqrs-examples

54.6

Weak · 22 September 2026

1.3k

lines of production code

Java

primary language

6

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This is a Spring Boot-based banking domain application that manages accounts and clients through an event-driven architecture. It exposes RESTful APIs for account and client operations, utilizing an in-memory event store and transaction repository to handle state changes and publish events. The system is built with standard Java libraries and includes comprehensive testing and code quality tooling.

Features

Introduce event-driven banking domain with Spring Boot and in-memory persistence

The application now runs on the Spring Boot framework, replacing previous Java EE technologies. This change introduces a domain model for banking, including Account and Client aggregates that manage state through events (e.g., AccountOpened, ClientEnrolled). The system exposes RESTful APIs for managing accounts (opening, depositing, withdrawing) and clients (enrolling, updating), as well as read models for account transactions and client accounts. An in-memory event store and transaction repository are provided for persistence, supporting optimistic locking and event publishing via a local event bus.

src/main · high confidence

Dependencies

Initial project setup with Spring Boot and updated dependencies

The project has been initialized with a Maven build configuration (pom.xml) based on Spring Boot 2.5.6, establishing the core application structure. This includes dependencies for Spring Boot Actuator and Web, along with testing libraries such as JUnit 5.7.2, Hamcrest 2.2, and Mockito 3.12.4. Additional utility libraries like Guava 30.1.1-jre, Commons Lang3 3.12.0, and Commons Validator 1.7 are included. The build is configured with Maven plugins for checkstyle validation, dependency enforcement, and JaCoCo code coverage, ensuring code quality and test coverage standards are met from the start.

(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

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 54 → 55 (+0.4)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 99 (-0.6)
  • Architecture 69 → 69 (+0.0)
  • Maturity 52 → 52 (+0.0)
  • Readiness 41 → 41 (+0.0)
  • Security 75 → 86 (+11.0)
  • Domain Modelling 100 → 89 (-10.6)

Resolved (7)

  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • No exposed public API
  • Scanner failed to run — not a clean result
  • dormant codebase — no living knowledge left to concentrate

New (17)

  • 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)
  • Duplicated block (12 lines × 2) (src/main/java/bankservice/service/account/DepositAccountCommand.java)
  • Duplicated block (13 lines × 2) (src/main/java/bankservice/domain/model/account/AccountDepositedEvent.java)
  • Duplicated block (13 lines × 2) (src/main/java/bankservice/domain/model/client/ClientEnrolledEvent.java)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Scanner failed to run — not a clean result
  • Scanner failed to run — not a clean result
  • Scattered collaborators
  • Workflow token permissions not restricted

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

Survey your own repository

yahyanouali/event-sourcing-cqrs-examples 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 ab1ab049bf5618f0e90349a7484675a0dc04a10b — 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.