dbellettini/eventstore-client-bundle
EventDispatcher to Laravel’s Event System or Queues (e.g., dispatch() → EventStore::append()).config/packages with Laravel’s config/eventstore.php and use environment variables for KurrentDB credentials.stream_id, event_type, timestamp). Laravel’s Eloquent or Query Builder would need adaptation to emit events in KurrentDB’s format.| Risk Area | Severity | Mitigation Strategy |
|---|---|---|
| Lack of Laravel Docs | High | Requires reverse-engineering Symfony bundle logic; may need custom Laravel wrappers. |
| Event Format Mismatch | Medium | Validate KurrentDB’s expected schema against Laravel’s event payloads. |
| Performance Overhead | Medium | Benchmark KurrentDB vs. existing Laravel event storage (e.g., PostgreSQL JSONB). |
| Vendor Lock-in | Low | MIT license is permissive; KurrentDB’s API is stable (assuming backward compatibility). |
| Debugging Complexity | Medium | Limited community support (3 stars); rely on KurrentDB’s docs and Symfony bundle as reference. |
ModelCreated, PaymentProcessed) map to KurrentDB’s streams and event types?symfony/contracts package.Phase 1: Proof of Concept (PoC)
UserRegistered).Artisan commands to simulate event writes.Phase 2: Core Integration
stream_id as a model attribute).EventStore::getEventsForStream($streamId)).Phase 3: Optimization & Fallbacks
| Component | Laravel Equivalent | Notes |
|---|---|---|
| Symfony Bundle | Service Provider + Facade | Manual registration required. |
| EventDispatcher | Laravel Events (event() helper) |
Custom listener to bridge to KurrentDB. |
| Doctrine DBAL | Laravel Query Builder | Avoid; use KurrentDB’s native API. |
| Symfony Config | Laravel Config (config/eventstore.php) |
Use env() for sensitive credentials. |
| Messenger Component | Laravel Queues | For async event processing. |
dbellettini/eventstore-client-bundle to composer.json (or fork/adapt for Laravel).EventStoreServiceProvider to bind KurrentDB client.EventStoreFacade for clean syntax (e.g., EventStore::append()).EventStore instead of event().stream_id to relevant models (e.g., user_id for user events).EventStoreRepository to query KurrentDB..env.How can I help you explore Laravel packages today?