PHPackages                             broadway/snapshotting - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. broadway/snapshotting

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

broadway/snapshotting
=====================

POC for snapshotting aggregates in broadway/broadway

0.3.0(6y ago)672.0k↓40.7%8[1 PRs](https://github.com/broadway/snapshotting/pulls)4MITPHPPHP &gt;=7.2CI passing

Since Jun 2Pushed 5mo ago3 watchersCompare

[ Source](https://github.com/broadway/snapshotting)[ Packagist](https://packagist.org/packages/broadway/snapshotting)[ RSS](/packages/broadway-snapshotting/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (4)Dependencies (4)Versions (6)Used By (4)

broadway/snapshotting
=====================

[](#broadwaysnapshotting)

Proof-of-concept component providing snapshotting functionality to [broadway/broadway](https://github.com/broadway/broadway).

[![build status](https://github.com/broadway/snapshotting/actions/workflows/ci.yml/badge.svg)](https://github.com/broadway/snapshotting/actions/workflows/ci.yml/badge.svg)

Installation
------------

[](#installation)

```
$ composer require broadway/snapshotting

```

Documentation
-------------

[](#documentation)

This project demonstrates taking and using snapshots of an aggregate root in the EventSourcingRepository.

Snaphots can be triggered using different strategies like once every number of events or after an amount of time has passed. The `EventCountTrigger` implements the former strategy.

Getting started
---------------

[](#getting-started)

This repository is just a library. It lacks (for now) implementations of the `SnapshotRepository`.

For example if you want store your events and snapshots in a database using `doctrine/dbal`you will have to:

- create a `DBALSnapshotRepository` implementing the `SnapshotRepository` to store and fetch snapshots. You wil have to figure out how to serialize your aggregate root.

License
-------

[](#license)

This project is licensed under the MIT License - see the LICENSE file for details

###  Health Score

42

—

FairBetter than 90% of packages

Maintenance48

Moderate activity, may be stable

Popularity37

Limited adoption so far

Community23

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 79.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~335 days

Total

4

Last Release

2263d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/e56158df0a7656e82c3fe2cee4d8173ef9c26fcd8882abd7dadfbdbd9eb93f89?d=identicon)[othillo](/maintainers/othillo)

---

Top Contributors

[![othillo](https://avatars.githubusercontent.com/u/2786663?v=4)](https://github.com/othillo "othillo (34 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (5 commits)")[![AlessandroMinoccheri](https://avatars.githubusercontent.com/u/3356506?v=4)](https://github.com/AlessandroMinoccheri "AlessandroMinoccheri (1 commits)")[![dependabot-preview[bot]](https://avatars.githubusercontent.com/in/2141?v=4)](https://github.com/dependabot-preview[bot] "dependabot-preview[bot] (1 commits)")[![mmalessa](https://avatars.githubusercontent.com/u/3789506?v=4)](https://github.com/mmalessa "mmalessa (1 commits)")[![wjzijderveld](https://avatars.githubusercontent.com/u/450201?v=4)](https://github.com/wjzijderveld "wjzijderveld (1 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/broadway-snapshotting/health.svg)

```
[![Health](https://phpackages.com/badges/broadway-snapshotting/health.svg)](https://phpackages.com/packages/broadway-snapshotting)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
