AliReaza/event-driven-kafka
52.0
Adequate · 22 September 2026
200
lines of production code
PHP
primary language
6
measurements over time
What this system is
This system is a PHP-based event-driven messaging service that interfaces with Apache Kafka for publishing and consuming events. It provides configurable producers and consumers, allowing for flexible control over message dispatching and listening behaviors. The codebase is structured around a shared configuration model for Kafka connections, supported by a corresponding test suite.
Behavioural changes
Refactor Kafka integration to use shared connection configuration
The Kafka integration has been refactored to use a shared \Conf\ object for connection configuration, replacing the previous approach of passing server strings and creating new \Conf\ objects internally. In \EventDispatcher\, the constructor now accepts a \Conf\ instance, and the dispatch logic uses \producev\ with configurable partition, message flags, and timeout. In \ListenerProvider\, the constructor also accepts a \Conf\ instance, and the \subscribe\ method now supports a timeout parameter and uses the shared configuration. Both classes now expose setter methods for configuration: \EventDispatcher\ exposes \setPartition\, \setMsgFlags\, and \setTimeoutMs\, while \ListenerProvider\ exposes \setConsumerTimeoutMs\ and \setPartitions\. This change simplifies configuration management and allows for more flexible control over Kafka producer and consumer behavior.
src · high confidence
Test coverage
Added newline at end of test files
Fixed missing newlines at the end of the EventDispatcherTest and ListenerProviderTest files, ensuring proper file formatting in the test suite.
tests · high confidence
Dependencies
Update package version and dependencies
The package version has been updated to 1.2.0. Dependencies have been upgraded: alireaza/uuid and alireaza/event-driven to version 1.2.0, and ext-rdkafka to 6.0. Additionally, the PHPUnit dev dependency has been updated to ^9.5.16, and funding information for LinkedIn has been added to the package metadata.
(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 44 → 52 (+8.5)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (-0.3)
- Architecture 69 → 69 (+0.0)
- Maturity 35 → 54 (+18.9)
- Readiness 26 → 33 (+7.7)
- Security 100 → 100 (+0.0)
Resolved (8)
- 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
- 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 (8)
- Dependency hygiene PARTLY measured — Composer dependencies read, no committed lock to grade for currency
- Documentation: no architecture or design documentation (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (9 lines × 2) (src/EventDispatcher.php)
- Inconsistent naming and signature for core message handling logic. Both classes have a method named 'messageHandler' but they accept different argument types (object vs Message) and return different types (?string vs Message). This suggests a lack of a common interface or base class for message processing, leading to confusingly similar names with different contracts.
- Redundant setter method across distinct aggregate roots. Both EventDispatcher and ListenerProvider expose an identical setter for 'MessageProvider'. Given that these are likely related components in the same event-driven system, having the same configuration method on two different top-level types creates API surface duplication and potential confusion about where the provider should be set.
- Skipped (documented): test_Coming_Soon (tests/Unit/EventDispatcherTest.php)
- Skipped (documented): test_Coming_Soon (tests/Unit/ListenerProviderTest.php)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
AliReaza/event-driven-kafka 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 1e1099cbe8292d2fddb914429ebe43eac37c5a0b — 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.