Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Verbs Laravel Package

hirethunk/verbs

Verbs is a Laravel-friendly event sourcing package for PHP artisans that keeps the benefits of event sourcing while cutting boilerplate and jargon. Model behavior as verbs, record events, and build projections with a clean, approachable API.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Event-Driven Architecture (EDA) Adoption:

    • Enables seamless migration from traditional CRUD to event-sourced workflows, reducing coupling between services.
    • Supports CQRS patterns by decoupling read/write models, improving scalability for high-traffic systems (e.g., e-commerce, SaaS platforms).
  • Roadmap Priorities:

    • Auditability & Compliance: Replace manual logging with immutable event streams for financial/healthcare apps (e.g., HIPAA/GDPR).
    • Real-Time Systems: Leverage event replay for live updates (e.g., dashboards, collaborative tools) via Livewire/React integration.
    • Microservices: Use event sourcing as a contract between services (e.g., order processing → inventory sync).
  • Build vs. Buy:

    • Buy: Avoid reinventing event-sourcing boilerplate (e.g., Prooph, EventSauce) while keeping Laravel’s ecosystem.
    • Extend: Customize event handlers/listeners without vendor lock-in (MIT license).
  • Use Cases:

    • Stateful Workflows: Multi-step processes (e.g., checkout flows, approval pipelines) with rollback/replay.
    • Testing: Time-travel debugging via event replay (critical for complex logic like fraud detection).
    • Offline-First: Queue pending events for later replay (e.g., mobile apps syncing with backend).

When to Consider This Package

Adopt if:

  • Your app has complex state transitions (e.g., order statuses, user permissions) that are hard to track with traditional ORMs.
  • You need temporal queries (e.g., "Show me all user actions in the last 30 days").
  • Your team prefers PHP/Laravel over JavaScript/Node.js for event sourcing.
  • You’re using Laravel 10+ and want minimal setup (auto-discovery, Livewire support).

Look elsewhere if:

  • You need distributed event sourcing (e.g., Kafka integration) → Use Laravel Serf or Prooph.
  • Your events are simple CRUD → Stick with Eloquent observers or Laravel’s built-in events.
  • You require strong consistency across services → Consider Saga pattern (e.g., Laravel Axon).
  • Your team lacks PHP expertise → Evaluate Node.js (EventStoreDB) or Python (Axon Framework).

How to Pitch It (Stakeholders)

For Executives: *"Verbs lets us treat business logic as a series of verbs (actions) rather than nouns (database records). This unlocks:

  • Audit trails without manual logging (critical for compliance).
  • Real-time sync across services (e.g., inventory updates in milliseconds).
  • Easier debugging by replaying past events—like a DVR for our app. It’s 10x faster to implement than custom event sourcing, with zero vendor lock-in."*

For Engineers: *"Verbs is event sourcing for Laravel artisans—no jargon, just:

  • Macros for customizing event lifecycle (e.g., skip phases, add metadata).
  • Livewire integration for reactive UIs without polling.
  • PostgreSQL/MySQL support with zero config changes. We can migrate incrementally: Start with critical workflows (e.g., payments) and expand. The docs are Laravel-native, so onboarding is trivial."*

For Architects: *"Key differentiators vs. alternatives:

Feature Verbs Prooph/EventSauce
Laravel Native ✅ (Livewire, Eloquent) ❌ (PHP-Generic)
Boilerplate Minimal (auto-discovery) High (DSL/config)
Replay Performance Optimized (LRU cache) Manual tuning required
Testing Built-in time travel Custom setup
This fits our PHP stack and agile delivery goals—no need to learn a new ecosystem."*
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor