landingi/event-store-bundle
A PHP event store bundle that adds event sourcing infrastructure to your application: append domain events to streams, replay them to rebuild aggregates, and wire the store into your existing framework services with minimal configuration.
by_support implementation in a minor version bump, which tells us the public surface is still moving and semver is applied loosely. The decision is therefore "adopt as vendored source with a pinned version," not "adopt as a dependency we upgrade freely." The 1–2 engineer-quarters saved on writing an event store, projections, and replay tooling remain real, but the risk profile now needs an explicit line item for upgrade churn.Consider it only when all of the following hold:
landingi/event-store-bundle and the "bundle" terminology points at Symfony, not Laravel. If you are on Laravel, confirm the package actually integrates (service provider, container bindings, config publishing) before it enters a design doc — a mismatched integration would consume the savings many times over. Note that v2.2.0's change is to a support-oriented feature, which reinforces that this is an extraction of one company's application concerns rather than a framework-neutral event store.by_support) in a minor release. Pin exact versions, keep a diff review step on every upgrade, and do not build domain behavior on top of anything you haven't read. Assume any surface can be deleted at any time without a major-version signal.Look elsewhere when:
spatie/laravel-activitylog or owen-it/laravel-auditing solve that at a fraction of the conceptual cost. Choosing event sourcing for audit alone is a well-known over-engineering trap.For executives: This is a small, MIT-licensed event store extracted from Landingi's own production system. It offers a credible shortcut to audit trails, replayable history, and an event-driven architecture — capabilities that typically cost a quarter or two of engineering to build. The latest release, v2.2.0, is a mixed signal worth naming plainly: the project is alive and shipping, which removes the "abandoned" risk we previously carried; but the change removes functionality in a minor version, which means we cannot assume stable APIs and would own the upgrade-review cost ourselves. Combined with near-zero external adoption and a single corporate maintainer, my recommendation is unchanged and slightly reinforced: pilot it inside one bounded context with a documented exit path and a pinned version, rather than standardize on it. If the pilot proves out, the option value is real; if it stalls, we have lost weeks, not quarters. The decision to do event sourcing at all is the larger commitment and deserves separate scrutiny — this package is a tactical choice downstream of that strategic one.
For engineering: Evaluate as a fork, not a dependency, and pin the version. Start by confirming framework fit — the repo is landingi/event-store-bundle and the "bundle" naming suggests Symfony; validate against our Laravel stack before anything else. Read v2.1.0 → v2.2.0 as a case study: a feature was deleted in a minor bump, so check what by_support did, whether anything in our design would have depended on it, and what that implies for the rest of the surface. Then check test coverage, event serialization format, and whether projection rebuild is supported. Benchmark it against Spatie's event-sourcing package and EventSauce on the two dimensions that matter to us: upgrade path and how much we'd have to write ourselves. Timebox the spike; report back with a build-vs-adopt delta rather than a yes/no.
How can I help you explore Laravel packages today?