modera/activity-logger-bundle
A Laravel bundle for recording user and system activity, giving you an audit trail of events across your application. Log actions, review histories, and track what changed and who changed it. Useful for compliance, debugging, and monitoring workflows.
Architecture fit. The first thing a TPM needs to surface is a framing error in the request itself: modera/activity-logger-bundle is a Symfony bundle, not a Laravel package. Its integration surface is Symfony's DI container (Extension/CompilerPass), the EventDispatcher, Doctrine ORM listeners, and Symfony's bundle registration in AppKernel/bundles.php. None of that maps onto Laravel's service container, EventServiceProvider, Eloquent, or package discovery. There is no Laravel adapter, no facade, no config publish stub. For a Laravel codebase the architecture fit is effectively zero — adopting it would mean importing a Symfony micro-kernel or hand-porting the listener logic, at which point you are not adopting the package at all.
If the organisation actually runs a legacy Symfony application, the fit is better but still dated: the bundle predates Symfony Flex, autowiring conventions, and the modern attribute-based event listener style.
Integration feasibility. Low. Hard blockers, in order of severity:
| Constraint | Assessment |
|---|---|
| Framework | Symfony-only; no Laravel support path |
| PHP version | Last release 2016-06-10 → targets PHP 5.5–7.0 era; almost certainly fails on PHP 8.x (reserved words, each(), nullable/return-type conflicts in transitive deps) |
| Symfony version | Constrained to ~2.3–3.x; conflicts with Symfony 5/6/7 |
| Doctrine | Requires ORM listener API from that era; breaks on modern DoctrineBundle |
| Dependency tree | Unpinned transitive deps from 2016 are the real risk, not the 4-file bundle itself |
Technical risk. High and asymmetric. Signals: 4 stars, 0 dependents, score 0.02, no release in ~9 years. That combination means no production user base, no CVE response, no one to ask when it breaks, and no evidence it ever worked at scale. The "opportunity: 14.7" score is a market-gap heuristic, not a viability signal — a gap here is better read as "nobody wants this," not "untapped demand." An activity/audit log is also a compliance-adjacent component: immature, unpatched code in the audit path is a governance finding waiting to happen.
Key questions for the team.
spatie/laravel-activitylog or owen-it/laravel-auditing.Stack fit. For a Laravel target, the recommended path is do not integrate; treat the package as a design reference and select a maintained equivalent. Reasonable candidates, mapped to requirement:
owen-it/laravel-auditingspatie/laravel-activitylogAll three are actively maintained, Laravel-native, and have real dependent counts. The functional gap versus Modera's bundle is small; the operational gap is enormous.
Migration path. If there is an existing Modera-produced activity_log-style table in a legacy Symfony system being consolidated into Laravel:
This preserves history without requiring the bundle to run on modern PHP.
Compatibility. The binding constraint is the transitive dependency graph, not the bundle's own code. Any attempt to force-install it will require composer require --ignore-platform-reqs or a replace block — both of which are explicit admissions that the dependency contract is broken and should be documented as such in the ADR.
Sequencing.
Maintenance. Effectively 100% internal from day one. There is no upstream to merge from — the "upstream" is a 2016 snapshot. Budget for a named owner, a fork in the org's namespace, and a documented divergence policy. Realistically this is a few days of work per year if it stays on a frozen PHP version, and unbounded if the platform upgrades underneath it.
Support. No vendor, no maintainer response, no issue history of value, no Stack Overflow corpus. Any incident is debugged from source with no external escalation path. For an audit-log component that people only notice during a compliance review, this is the worst support profile: low usage frequency, high consequence when wrong.
Scaling. Activity logging is a write-amplifying, monotonically growing workload and the bundle's era-typical design — synchronous Doctrine listener, per-flush inserts, one row per change — is the pattern that degrades first. Expect:
(actor, created_at) and (subject_type, subject_id).The operational answer is the same regardless of library: asynchronous write path (queue + worker), time-partitioned or separate-database storage, and enforced retention (e.g. 90/365/2555 days by event class). None of that is provided by this bundle.
Failure modes.
Ramp-up. Near-zero learning curve for the API (it is a small bundle) and effectively infinite ramp-up for the implicit knowledge required — there are no docs of substance, no tests to read as specification, and no examples. An engineer picking this up inherits archaeology, not a codebase. By contrast, a maintained Laravel auditing library has docs, tests, an active issue tracker, and public answers to the questions that will actually come up.
Bottom line. The package does not fit the stated target stack, has no adoption evidence, and has been unreleased for nine years. The TPM recommendation is to close this as a non-candidate and redirect the effort into a requirements-driven comparison of maintained Laravel auditing libraries, using this bundle only as a schema reference if legacy log data must be preserved.
How can I help you explore Laravel packages today?