craftgate/craftgate-modulith-messaging
53.0
Adequate · 21 September 2026
702
lines of production code
Java
primary language
4
measurements over time
What this system is
This system is a Java library that provides a modular messaging API for handling domain events and messages. It supports both synchronous and asynchronous message processing with optional transactional execution, utilizing custom annotations and handler interfaces for configuration. The library is built on Spring 6 and includes utilities for testing message handlers.
Features
Initial project scaffolding and documentation
The repository was initialized with essential project files, including a Gradle wrapper script, \.gitattributes\ and \.gitignore\ configurations, and comprehensive documentation such as \README.md\, \CONTRIBUTING.md\, \CODE\_OF\_CONDUCT.md\, \SECURITY.md\, and a \NOTICE.md\ file. The project license was also updated from MIT to Apache License 2.0, and the \gradlew\ script was added to support building the project.
(repo-wide) · high confidence
Introduce modular messaging API with transactional message handling
Added a new messaging API in \lib/src/main/java/io/craftgate/modulith/messaging/api\ that provides a \MessagePublisher\ for dispatching messages to registered handlers. The update introduces support for both chained (synchronous) and unchained (asynchronous) message processing, with optional transactional execution for handlers. The API includes custom annotations (\@DomainComponent\, \@MessageHandlerConfig\, \@MessageType\) for configuration, specialized handler interfaces (\MessageHandler\, \NoMessageHandler\, \VoidMessageHandler\, \VoidNoMessageHandler\), and registry classes to manage handler mappings. Additionally, a \MessageTestCollector\ utility is provided to capture and verify messages during testing.
lib/src · high confidence
Behavioural changes
Updated Gradle wrapper to version 7.6
The Gradle wrapper has been updated to use Gradle 7.6. This change ensures that the project uses a specific, consistent version of the Gradle build tool, which may include new features, performance improvements, and bug fixes compared to previous versions.
gradle · medium confidence
Dependencies
Reorganize project as a Java library with new dependencies
The project structure has been reorganized into a Java library module. A new \build.gradle\ file defines the library's dependencies, including Spring 6.0.3, Guava 31.1, Logback 1.4.5, Lombok 1.18.24, and various testing libraries (AssertJ, JUnit 5, Spring Boot 3.0.2). The \settings.gradle\ file establishes the project name and includes the 'lib' subproject.
(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
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 61 → 53 (-8.0)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 98 → 98 (+0.3)
- Architecture 69 → 66 (-3.3)
- Maturity 59 → 39 (-20.1)
- Readiness 52 → 51 (-0.8)
- Security 87 → 95 (+8.7)
Resolved (15)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Duplicated block (5 lines × 2) (lib/src/main/java/io/craftgate/modulith/messaging/api/handler/MessageHandler.java)
- Duplicated block (5 lines × 2) (lib/src/main/java/io/craftgate/modulith/messaging/api/registry/MessageHandlerRegistry.java)
- Duplicated block (7 lines × 2) (lib/src/main/java/io/craftgate/modulith/messaging/api/MessagePublisher.java)
- Duplicated block (7 lines × 2) (lib/src/main/java/io/craftgate/modulith/messaging/api/MessagePublisher.java)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- No exposed public API
- 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 (18)
- 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)
- Duplicated block (10 lines × 2) (lib/src/main/java/io/craftgate/modulith/messaging/api/registry/VoidMessageHandlerRegistry.java)
- Duplicated block (11 lines × 2) (lib/src/main/java/io/craftgate/modulith/messaging/api/exception/HandlerRegistryNotAllowedException.java)
- Duplicated block (15 lines × 2) (lib/src/main/java/io/craftgate/modulith/messaging/api/MessagePublisher.java)
- Duplicated block (5 lines × 2) (lib/src/main/java/io/craftgate/modulith/messaging/api/handler/MessageHandler.java)
- Duplicated block (5 lines × 2) (lib/src/main/java/io/craftgate/modulith/messaging/api/registry/MessageHandlerRegistry.java)
- Duplicated block (9 lines × 2) (lib/src/main/java/io/craftgate/modulith/messaging/api/MessagePublisher.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)
- No ADRs found
- No dependency advisory monitoring
- 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
craftgate/craftgate-modulith-messaging 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 1cdef9b77ad6e96f5cba17b30ce07f4f300513f2 — 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.