Trendyol/kediatR
61.0
Adequate · 22 September 2026
2.9k
lines of production code
Kotlin
primary language
7
measurements over time
What this system is
This system is a Kotlin library implementing the Mediator pattern, designed to simplify command, query, and notification handling through a unified request interface. It provides high-performance handler resolution with caching and integrates seamlessly with major dependency injection frameworks, including Spring Boot, Koin, and Quarkus. The library also includes robust build infrastructure and comprehensive test fixtures to ensure reliability across different runtime environments.
Features
Add Koin integration for dependency injection
Users can now use Kediatr with the Koin dependency injection framework. A new KediatRKoinProvider implementation allows the library to resolve dependencies from the active Koin instance, and a convenience helper (KediatRKoin.getMediator) is provided to build a Mediator configured for Koin.
projects/kediatr-koin-starter/src/main · high confidence
Add Spring Boot 4.x auto-configuration support
The library now provides a new starter module for Spring Boot 4.x compatibility. This change introduces \KediatRAutoConfiguration\ and \KediatRSpringBeanProvider\ to automatically register the Mediator bean within the Spring context, replacing previous manual wiring approaches. The auto-configuration is registered via the standard Spring Boot \AutoConfiguration.imports\ file, allowing users to integrate the mediator pattern seamlessly in Spring Boot 4.x applications without additional setup.
projects/kediatr-spring-boot-4x-starter · high confidence
Spring Boot auto-configuration for Mediator bean
The Spring Boot starters for both version 2.x and 3.x now include automatic configuration that registers the \Mediator\ and \KediatRSpringBeanProvider\ beans. These beans are conditionally created only if no existing bean of the same type is present, allowing users to integrate the mediator pattern without manual setup while still permitting override via custom beans.
projects/kediatr-spring-boot-2x-starter/src/main, projects/kediatr-spring-boot-3x-starter/src/main · high confidence
Behavioural changes
Build infrastructure refactoring in buildSrc
The buildSrc module has been restructured to improve code reuse and maintainability. New helper functions (Helpers.kt) were added to simplify iterating over subprojects and filtering project collections based on parent names and exclusions. Additionally, a utility property (predef.kt) was introduced to extract plugin IDs from Gradle plugin dependency providers, streamlining plugin configuration across the build.
buildSrc · high confidence
Introduce unified Request/RequestHandler interfaces and simplify Mediator API
The library replaces the previous Command, Query, and CommandWithResult abstractions with a single unified \Request\<TResponse\>\ interface, allowing users to model both commands and queries through one consistent pattern. Correspondingly, \CommandHandler\ and \QueryHandler\ are replaced by \RequestHandler\, and the \Mediator\ now exposes a single \send()\ method for all requests, removing the need for separate command and query dispatching methods. This change simplifies the API and reduces boilerplate for users adopting the mediator pattern.
(repo-wide) · high confidence
Quarkus integration now uses CDI-based dependency resolution
The Quarkus starter now delegates single-instance resolution to a new QuarkusTypeResolver, which leverages the Quarkus BeanManager to resolve beans and discover subtypes. This replaces the previous mechanism with a CDI-native approach, ensuring that dependency injection for MediatR commands and queries is handled directly by the Quarkus container.
projects/kediatr-quarkus-starter/src/main · high confidence
Unified request handling with caching and improved handler resolution
The core mediator now unifies queries and commands under a single Request interface, replacing the previous separate Command and Query types. Handler resolution has been refactored to prioritize exact type matches over inheritance, ensuring that a handler registered for a specific command is selected before falling back to base-type handlers. To improve performance, the mediator now uses a CachedRegistry that caches resolved request handlers, notification handlers, and pipeline behaviors using thread-safe concurrent maps, eliminating repeated resolution lookups during runtime.
projects/kediatr-core/src/main · high confidence
Test coverage
Added Koin integration tests for Mediator; Added test fixtures for Mediator command, query, and notification handling; Added tests for CachedRegistry performance and correctness; Unified Spring Boot test suite for Mediator functionality.
Dependencies
Gradle wrapper upgraded to version 9.7.1
The project's Gradle wrapper has been updated to use Gradle 9.7.1. This change ensures that builds are executed with a consistent, specific version of the Gradle build tool, eliminating potential discrepancies caused by different local Gradle installations and leveraging the features and bug fixes present in this release.
gradle · high confidence
Migrate to Gradle version catalogs and update core dependencies
The build system has been restructured to use Gradle version catalogs (defined in gradle/libs.versions.toml) for centralized dependency management, replacing previous ad-hoc version declarations. This change updates the Kotlin compiler to version 2.4.20, Kotlin Coroutines to 1.11.0, Kotest to 6.2.5, JUnit to 6.1.3, Koin to 4.2.2, and Quarkus to 3.39.4. Additionally, the project now enforces a JDK 17 build toolchain while ensuring published main artifacts remain compatible with JDK 11, and configures Maven publishing with signing enabled.
(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 55 → 61 (+6.4)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (+0.0)
- Architecture 100 → 100 (+0.0)
- Maturity 51 → 51 (+0.0)
- Readiness 66 → 65 (-1.0)
- Security 41 → 58 (+16.9)
Resolved (19)
- Coverage not included — suite not readable by the collector
- 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)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- No exposed public API
- Off-boarding risk: anonymized user #1
- Test reliability not included
- complexity unreadable for .kt — churn × complexity hotspots could not be measured
New (24)
- 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)
- Flaky test: com.trendyol.kediatr.CachedRegistryPerformanceTest.should demonstrate significant performance improvement for pipeline behavior resolution
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Job token omits the contents scope its checkout needs
- …and 4 more
Changes since last survey
- 7 commits — 2 feature/other, 5 fixes
By area
- .github/workflows — 6 commits
- gradle/libs.versions.toml — 1 commit
Notable commits
- fix: fix(deps): update all non-major dependencies (#522)
- fix: fix(deps): update all non-major dependencies (#523)
- fix: fix(deps): update all non-major dependencies (#525)
- fix: fix(deps): update all non-major dependencies (#526)
- fix: fix(deps): update all non-major dependencies (#527)
- change: chore(deps): update actions/setup-java action to v6 (#524)
- change: chore(deps): update dependency java-jdk to v25 (#528)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
Trendyol/kediatR 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 0ce307e910513896e912981a7c9d3c438c655b8d — 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.