hirethunk/verbs
Verbs is an event sourcing package for Laravel artisans that removes boilerplate and jargon, letting you model your domain by what happens—verbs, not nouns. Persist events, rebuild state, and ship faster with a clean, expressive API designed to make event sourcing feel natural in PHP.
activity_log table. This directly supports decisions in regulated or disputed domains: billing, payments, ledgers, inventory, approvals, KYC, claims, and anything where a customer or auditor asks "how did we get to this state?"now() during replay and its "Wormhole" time-travel testing support make this cheap to demo and cheap to ship.PlaceOrder, RefundPayment) rather than CRUD writes. That is a modelling and product-language decision — it typically yields clearer naming in the UI, analytics, and docs.isAllowed() / isValid() affordances for permission-aware UI (show/hide actions pre-submit rather than after a failed request); Livewire deferred commit to avoid partial writes when a render fails; outside listeners for integrations and notifications without polluting the domain.Adopt when most of these hold:
Look elsewhere when:
For executives (one slide):
Verbs is an MIT-licensed, Laravel-native event sourcing library. It gives us a complete, queryable history of every business decision by default — the audit trail compliance asks for, the "what happened to my order?" answer support asks for, and the "replay it to debug" capability engineering asks for — without building an event store ourselves. Cost is a Composer dependency. Risk is maturity: it is pre-1.0 with a small maintainer group, so we mitigate by pinning versions, isolating it to one bounded context first, and keeping a documented exit path. Decision requested: approve a bounded pilot (billing/entitlements) with a two-sprint timebox.
For engineering:
fire() is a no-op during replay, historical now() during reconstruction, Livewire commits deferred until just before render, event metadata on every event, outside listeners for side effects.For product/design:
How can I help you explore Laravel packages today?