- What is ecotone/laravel used for?
- It is the Laravel adapter for Ecotone, a PHP messaging runtime that provides command, query, and event buses, CQRS, event sourcing, sagas, durable workflows, and a transactional outbox. It wires those primitives into Laravel's container, queues, and Eloquent so handlers can be registered with PHP attributes instead of boilerplate. It is an architectural accelerator for apps with real domain complexity, not a replacement for Laravel's background job system.
- How do I install ecotone/laravel in a Laravel application?
- Install it with Composer, publish the package configuration, and let Laravel's service-provider auto-discovery register the adapter. Handler registration is attribute-driven, and the package exposes Artisan commands such as ecotone:list and ecotone:run. The mechanical install is cheap; the larger effort is converting existing service-layer or CRUD code into command, query, and event flows.
- Is ecotone/laravel production-ready?
- Treat that as a decision gate rather than a simple yes or no. The technical assessment rates risk high because the repository has roughly 22 stars and zero dependents, so there is little field validation and your team will hit edge cases first. Laravel is also a secondary surface behind Symfony, so Laravel-specific issues may be lower priority upstream. Validate it in a bounded context before committing critical workflows.
- Which Laravel and PHP versions does ecotone/laravel support?
- The technical evaluation describes it as viable on Laravel 10 and 11 with PHP 8.2+ on MySQL or Postgres. The exact supported version matrix, and how quickly constraints widen after a new Laravel release, should be confirmed with the maintainers. Because the adapter is thin, evaluate the Ecotone core compatibility just as carefully as the Laravel package.
- Does ecotone/laravel work with Laravel Octane and Swoole?
- That is an open question flagged in the assessment, not a documented guarantee. Long-lived workers raise concerns about whether the container and attribute-driven handler registry are safe across requests. If your stack relies on Octane or Swoole, verify this with the maintainers or a spike before adopting the package.
- How does the outbox pattern work in ecotone/laravel?
- The package provides a transactional outbox so domain events can be committed alongside state changes instead of being dispatched separately. What is not clear from the overview is the relay mechanism, whether it is a polling loop, a scheduled command, or queue-driven, and what delivery guarantee results. Ask the maintainers those two questions before designing consistency-sensitive workflows.
- Does ecotone/laravel integrate with Laravel Horizon and standard queue drivers?
- The package is described as running on top of Laravel Queue, but the assessment lists Horizon and standard queue driver integration as a key question. You need to know whether Ecotone uses Laravel's queue connections as message channels or requires its own transport configuration. Confirm that before assuming your existing Horizon monitoring and workers will cover Ecotone messages.
- What license is ecotone/laravel released under?
- The repository metadata shows NOASSERTION, which is not a license grant. Treat an unresolved license as a hard stop condition and route it to legal review before any code merges. Request written license clarification from the maintainers rather than assuming the package inherits Ecotone's or Laravel's licensing.
- How do I migrate an existing Laravel app to ecotone/laravel?
- Use a strangler-fig approach rather than a rewrite. Pick one bounded context, ideally new or low-traffic and with natural event semantics such as notifications, order lifecycle, or onboarding, and route only new writes through an Ecotone command bus while legacy controllers and jobs stay untouched. Keep Eloquent read models and move the outbox and projection layer last, once handler correctness is proven.
- What are the alternatives to ecotone/laravel for CQRS and event sourcing in Laravel?
- If the real requirement is background processing, Laravel's queue, jobs, and Event::dispatch already handle it with far less conceptual overhead. If you genuinely need CQRS, event sourcing, sagas, and an outbox, compare the Ecotone Laravel adapter against Ecotone core directly and against building bespoke buses and outbox tables. Note that Ecotone's primary integration target is Symfony, so the Laravel adapter is a secondary surface.