Skip to content
CAI
Software that uses CAICheck a score

EventSaucePHP/LaravelEventSauce

60.2

Adequate · 22 September 2026

581

lines of production code

PHP

primary language

7

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a Laravel package that integrates the EventSauce library to provide event-sourcing capabilities. It offers configurable infrastructure for storing and dispatching domain events, along with Artisan commands to scaffold aggregate roots, consumers, and related database migrations. The package also includes comprehensive test coverage and supports modern versions of Laravel and EventSauce.

Features

Added domain scaffolding templates for EventSauce integration

Added new stub files for generating domain components: an AggregateRoot class, an AggregateRootId value object, an AggregateRootRepository, a base Consumer class, and a database migration for the domain messages table. These templates allow developers to quickly scaffold the core pieces of an event-sourced application using the EventSauce library.

src/Console/stubs · high confidence

Initial project scaffolding and documentation

The repository was initialized with essential project files, including a detailed README with installation and usage instructions for the Laravel EventSauce integration, a CHANGELOG following the Keep a Changelog standard, and configuration files for PHPUnit and code style (StyleCI). This establishes the foundational structure and documentation for the library.

(repo-wide) · high confidence

New Artisan commands for scaffolding EventSauce components

The src/Console directory introduces four new Artisan commands to streamline development with EventSauce. The \make:aggregate-root\ command scaffolds an aggregate root, its ID, repository, and a corresponding database migration. The \make:consumer\ command generates a new consumer class. The \make:aggregate-root\ and \make:consumer\ commands extend a shared \MakeCommand\ base class that handles file creation, directory management, and stub rendering. Additionally, a \GenerateCommand\ is added to generate code based on YAML definitions, with a check to ensure the required code-generation package is installed. These commands provide a structured way to create and manage EventSauce-related files within a Laravel application.

src/Console · high confidence

New exception classes for code generation and file creation failures

The package now introduces two new exception classes to handle specific failure scenarios. CodeGenerationFailed is a new exception class that provides static factory methods for code generation errors, such as missing definition files or the code-generation package not being installed. Additionally, MakeFileFailed is a new exception class that handles cases where a file creation fails because the target file already exists.

src/Exceptions · high confidence

Behavioural changes

Refactor config to support database storage and code generation

The configuration file has been updated to replace the previous 'aggregate\_roots' structure with new settings for database storage and repository management. Users can now specify the database 'connection' and 'table' for storing messages, and define 'repositories' for code generation, aligning with the framework's event-sourcing capabilities.

config · high confidence

Refactored event sourcing infrastructure with configurable consumers and message decorators

The package now supports configurable message decorators and allows consumers to be injected via the service container. The \AggregateRootRepository\ and \LaravelMessageRepository\ have been refactored to read configuration values for the database connection and table, and the service provider now registers commands and binds the \MessageDecorator\ interface. Additionally, the \EventSauceJob\ has been renamed to \HandleConsumer\ and updated to resolve consumers from the container, while the \GenerateCodeCommand\ has been removed.

src · high confidence

Updated domain\_messages migration with larger IDs and renamed columns

The database migration for the domain\_messages table was moved to the database directory and refactored. The primary key was changed from increments to bigIncrements to support larger IDs. Additionally, the aggregate\_root\_id column was renamed to event\_stream, and the time\_of\_recording column was renamed to recorded\_at.

database · high confidence

Test coverage

Added test coverage for core event sourcing components; Added test fixtures for event sourcing and consumers; Added tests for console commands.

Dependencies

Upgrade to Laravel 8/9 and EventSauce 2.0 support

The package now requires PHP 7.4 or 8.0 and supports Laravel 8 and 9, replacing the previous Laravel 5.6/5.8 support. It also adds support for EventSauce 2.0 (while maintaining 1.x compatibility) and Ramsey UUID 4.0, enabling users to leverage the latest features in these libraries.

(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 56 → 60 (+3.8)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (+0.0)
  • Architecture 69 → 69 (+0.0)
  • Maturity 49 → 49 (+0.0)
  • Readiness 46 → 58 (+12.3)
  • Security 100 → 98 (-1.7)

Resolved (5)

  • 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
  • dormant codebase — no living knowledge left to concentrate

New (7)

  • Dependency hygiene PARTLY measured — Composer dependencies read, no committed lock to grade for currency
  • Documentation: no usage examples (README.md)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • Medium: security finding (details withheld)
  • 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

EventSaucePHP/LaravelEventSauce 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 2ef8253b2d105b9da8458272187f46ed8b924a10 — 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.