Skip to content
CAI
Software that uses CAICheck a score

prooph/snapshotter

55.3

Adequate · 21 September 2026

162

lines of production code

PHP

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a PHP library designed for managing data snapshots within the Prooph event-sourcing ecosystem. It provides mechanisms to project events from specific streams or categories into read models and persist those snapshots to a store. The implementation includes classes for handling aggregate caching, memory management, and state reset operations.

Features

New snapshot projection and read model classes

Added three new classes to the library: \CategorySnapshotProjection\ and \StreamSnapshotProjection\, which wrap \ReadModelProjector\ to process events from a specific category or stream, and \SnapshotReadModel\, which manages aggregate caching, persists snapshots to a \SnapshotStore\, and clears the repository's identity map after saving to prevent unlimited memory consumption.

src · high confidence

Behavioural changes

Initial project scaffolding and CI configuration

The repository is initialized with essential configuration files, including a Travis CI build matrix for PHP 7.3, 7.4, and 8.0, along with PHP CS Fixer, Coveralls, and PHPUnit settings. A BSD-3-Clause license is added, and the README is updated with build status badges and support links.

(repo-wide) · high confidence

Test coverage

Added test mock for aggregate root; Added tests for snapshot projection and read model.

Dependencies

Introduce composer.json for the prooph/snapshotter package

The project now includes a composer.json file that defines the package as prooph/snapshotter, a snapshot tool for the prooph event-store. It specifies PHP 7.3+ or 8.0+ as a requirement, along with dependencies on prooph/event-sourcing ^5.0, prooph/event-store ^7.0, and prooph/snapshot-store ^1.0. Development dependencies include phpunit ^9.3, phpspec/prophecy ^1.9, and various prooph tooling packages. This establishes the package's dependencies and autoloading configuration for the first time.

(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

Score

  • CAI 52 → 55 (+3.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 → 35 (+0.0)
  • Readiness 50 → 63 (+13.7)
  • Security 100 → 100 (+0.0)

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 (4)

  • Dependency hygiene PARTLY measured — Composer dependencies read, no committed lock to grade for currency
  • Documentation: no installation or build instructions (README.md)
  • Duplicated block (5 lines × 2) (src/CategorySnapshotProjection.php)
  • No dependency advisory monitoring

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

Survey your own repository

prooph/snapshotter 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 42b19e4b7535ab9a9761127d43f4d74dbd3f03f9 — 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.