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)674.9k↓60.1%8[1 PRs](https://github.com/broadway/snapshotting/pulls)4MITPHPPHP &gt;=7.2CI passing

Since Jun 2Pushed 8mo ago3 watchersCompare

[ Source](https://github.com/broadway/snapshotting)[ Packagist](https://packagist.org/packages/broadway/snapshotting)[ RSS](/packages/broadway-snapshotting/feed)WikiDiscussions master Synced 2w 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

41

—

FairBetter than 87% of packages

Maintenance42

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

2354d 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)
```

###  Alternatives

[broadway/broadway-saga

Proof-of-concept component providing saga functionality to broadway/broadway.

35478.9k10](/packages/broadway-broadway-saga)[silverstripe/redirectedurls

Provides a system for users to configure arbitrary redirections in the CMS

31546.0k11](/packages/silverstripe-redirectedurls)[swentel/nostr-php

Nostr helper library for PHP

6932.1k6](/packages/swentel-nostr-php)[marcw/rss-writer

A simple yet powerful RSS2 feed writer with RSS extensions support (like iTunes podcast tags)

1335.8k](/packages/marcw-rss-writer)

PHPackages © 2026

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