PHPackages                             spatie/laravel-event-projector - 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. spatie/laravel-event-projector

Abandoned → [spatie/laravel-event-sourcing](/?search=spatie%2Flaravel-event-sourcing)ArchivedLibrary[Utility &amp; Helpers](/categories/utility)

spatie/laravel-event-projector
==============================

Event sourcing for artisans

3.1.3(6y ago)66175.8k↓30.6%612MITPHPPHP ^7.3

Since May 17Pushed 6y ago25 watchersCompare

[ Source](https://github.com/spatie/laravel-event-projector)[ Packagist](https://packagist.org/packages/spatie/laravel-event-projector)[ Docs](https://github.com/spatie/laravel-event-projector)[ RSS](/packages/spatie-laravel-event-projector/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (13)Versions (53)Used By (2)

**THIS PACKAGE HAS BEEN SUPERCEDED BY SPATIE/LARAVEL-EVENT-SOURCING**

Because the package now does more than just providing projectors, we decided to change the name of the package to [`spatie/laravel-event-sourcing`](https://github.com/spatie/laravel-event-sourcing).

Upgrading from v3 of `laravel-event-projector` to `v1` of laravel-event-sourcing is easy. Take a look at [the upgrade guide for laravel-event-sourcing](https://github.com/spatie/laravel-event-sourcing/blob/master/UPGRADING.md).

Event sourcing for Artisans 📽
=============================

[](#event-sourcing-for-artisans-)

[![Latest Version on Packagist](https://camo.githubusercontent.com/8bb0ad145d0f5b1ed6fd3e5d12e8c6433682bcea6a181c75b38a341fe5eb421d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7370617469652f6c61726176656c2d6576656e742d70726f6a6563746f722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/spatie/laravel-event-projector)[![Build Status](https://camo.githubusercontent.com/346a35b232df52c66413e1fd953bc491626f4cb98743cad9e3ca767b4f725a87/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f7370617469652f6c61726176656c2d6576656e742d70726f6a6563746f722f6d61737465722e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/spatie/laravel-event-projector)[![StyleCI](https://camo.githubusercontent.com/4c2337922562bbc9fe3275154e4ccd2f6c14ef69ce7accc336a13f0e8e7cc4b9/68747470733a2f2f7374796c6563692e696f2f7265706f732f3133333439363131322f736869656c643f6272616e63683d6d6173746572)](https://styleci.io/repos/133496112)[![Quality Score](https://camo.githubusercontent.com/c130cb6219399afa8062c7e5e1238612788e0017dbf789ba3c5ca94126b49526/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f7370617469652f6c61726176656c2d6576656e742d70726f6a6563746f722e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/spatie/laravel-event-projector)[![Total Downloads](https://camo.githubusercontent.com/05fc10bfcfe75662ff2192466c9c884e17db6431d0c3a2a2151a78c0619c6394/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7370617469652f6c61726176656c2d6576656e742d70726f6a6563746f722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/spatie/laravel-event-projector)

This package aims to be the entry point to get started with event sourcing in Laravel. It can help you with setting up aggregates, projectors, and reactors.

If you've never worked with event sourcing, or are uncertain about what aggregates, projectors and reactors are head over to the getting familiar with event sourcing section [in our docs](https://docs.spatie.be/laravel-event-projector/v3/getting-familiar-with-event-sourcing/introduction).

Event sourcing might be a good choice for your project if:

- your app needs to make decisions based on the past
- your app has auditing requirements: the reason why your app is in a certain state is equally as important as the state itself
- you foresee that there will be a reporting need in the future, but you don't know yet which data you need to collect for those reports

If you want to skip to reading code immediately, here are some example apps. In each of them, you can create accounts and deposit or withdraw money.

- [Larabank built traditionally without event sourcing](https://github.com/spatie/larabank-traditional)
- [Larabank built with projectors](https://github.com/spatie/larabank-event-projector)
- [Larabank built with aggregates and projectors](https://github.com/spatie/larabank-event-projector-aggregates)

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

[](#documentation)

You can find installation instructions and detailed instructions on how to use this package at [the dedicated documentation site](https://docs.spatie.be/laravel-event-projector).

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Security
--------

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Postcardware
------------

[](#postcardware)

You're free to use this package, but if it makes it to your production environment we highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using.

Our address is: Spatie, Samberstraat 69D, 2060 Antwerp, Belgium.

We publish all received postcards [on our company website](https://spatie.be/en/opensource/postcards).

Credits
-------

[](#credits)

- [Freek Van der Herten](https://github.com/freekmurze)
- [All Contributors](../../contributors)

The aggregate root functionality is heavily inspired by [Frank De Jonge](https://twitter.com/frankdejonge)'s excellent [EventSauce](https://eventsauce.io/) package. A big thank you to [Dries Vints](https://github.com/driesvints) for giving lots of valuable feedback while we were developing the package.

Support us
----------

[](#support-us)

Spatie is a webdesign agency based in Antwerp, Belgium. You'll find an overview of all our open source projects [on our website](https://spatie.be/opensource).

Does your business depend on our contributions? Reach out and support us on [Patreon](https://www.patreon.com/spatie). All pledges will be dedicated to allocating workforce on maintenance and new awesome stuff.

Footnotes
---------

[](#footnotes)

1 Quote taken from [Event Sourcing made Simple](https://kickstarter.engineering/event-sourcing-made-simple-4a2625113224)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

47

—

FairBetter than 94% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity51

Moderate usage in the ecosystem

Community35

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor1

Top contributor holds 83.8% 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 ~9 days

Recently: every ~3 days

Total

52

Last Release

2433d ago

Major Versions

0.0.11 → 1.0.02018-07-13

1.3.2 → 2.0.02019-04-08

v1.x-dev → 2.6.32019-06-16

2.8.2 → 3.0.02019-09-04

PHP version history (2 changes)0.0.1PHP ^7.2

2.0.0PHP ^7.3

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/7535935?v=4)[Spatie](/maintainers/spatie)[@spatie](https://github.com/spatie)

---

Top Contributors

[![freekmurze](https://avatars.githubusercontent.com/u/483853?v=4)](https://github.com/freekmurze "freekmurze (460 commits)")[![sebastiandedeyne](https://avatars.githubusercontent.com/u/1561079?v=4)](https://github.com/sebastiandedeyne "sebastiandedeyne (18 commits)")[![adrianspacely](https://avatars.githubusercontent.com/u/3690710?v=4)](https://github.com/adrianspacely "adrianspacely (17 commits)")[![brendt](https://avatars.githubusercontent.com/u/6905297?v=4)](https://github.com/brendt "brendt (8 commits)")[![telkins](https://avatars.githubusercontent.com/u/53731?v=4)](https://github.com/telkins "telkins (8 commits)")[![36864](https://avatars.githubusercontent.com/u/109086466?v=4)](https://github.com/36864 "36864 (3 commits)")[![pascalbaljet](https://avatars.githubusercontent.com/u/8403149?v=4)](https://github.com/pascalbaljet "pascalbaljet (3 commits)")[![rodrigopedra](https://avatars.githubusercontent.com/u/5470108?v=4)](https://github.com/rodrigopedra "rodrigopedra (3 commits)")[![unreasonablymundane](https://avatars.githubusercontent.com/u/25407733?v=4)](https://github.com/unreasonablymundane "unreasonablymundane (3 commits)")[![vtalbot](https://avatars.githubusercontent.com/u/1474848?v=4)](https://github.com/vtalbot "vtalbot (2 commits)")[![Azeirah](https://avatars.githubusercontent.com/u/4040870?v=4)](https://github.com/Azeirah "Azeirah (2 commits)")[![mfullbrook](https://avatars.githubusercontent.com/u/548608?v=4)](https://github.com/mfullbrook "mfullbrook (2 commits)")[![michael-schaefer-eu](https://avatars.githubusercontent.com/u/9930093?v=4)](https://github.com/michael-schaefer-eu "michael-schaefer-eu (2 commits)")[![profd2004](https://avatars.githubusercontent.com/u/4429661?v=4)](https://github.com/profd2004 "profd2004 (2 commits)")[![dib258](https://avatars.githubusercontent.com/u/4132137?v=4)](https://github.com/dib258 "dib258 (1 commits)")[![mpociot](https://avatars.githubusercontent.com/u/804684?v=4)](https://github.com/mpociot "mpociot (1 commits)")[![Namoshek](https://avatars.githubusercontent.com/u/8877609?v=4)](https://github.com/Namoshek "Namoshek (1 commits)")[![NathanGiesbrecht](https://avatars.githubusercontent.com/u/1516627?v=4)](https://github.com/NathanGiesbrecht "NathanGiesbrecht (1 commits)")[![nathanheffley](https://avatars.githubusercontent.com/u/8952123?v=4)](https://github.com/nathanheffley "nathanheffley (1 commits)")[![nunomaduro](https://avatars.githubusercontent.com/u/5457236?v=4)](https://github.com/nunomaduro "nunomaduro (1 commits)")

---

Tags

event-sourcingeventseventstorelaravelphpeventspatieaggregatessourcingprojectorsreactorslaravel-event-projector

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/spatie-laravel-event-projector/health.svg)

```
[![Health](https://phpackages.com/badges/spatie-laravel-event-projector/health.svg)](https://phpackages.com/packages/spatie-laravel-event-projector)
```

###  Alternatives

[spatie/laravel-event-sourcing

The easiest way to get started with event sourcing in Laravel

9003.7M26](/packages/spatie-laravel-event-sourcing)[spatie/laravel-backup

A Laravel package to backup your application

6.0k21.8M191](/packages/spatie-laravel-backup)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)[barryvdh/laravel-ide-helper

Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.

14.9k123.0M687](/packages/barryvdh-laravel-ide-helper)[spatie/laravel-enum

Laravel Enum support

3655.4M31](/packages/spatie-laravel-enum)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9682.1M97](/packages/roots-acorn)

PHPackages © 2026

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