CQRS, Event Sourcing, Workflows, and Production Resilience for Laravel and Symfony
Install with Composer · Configure with PHP Attributes · Works with your existing codebase
You love Laravel's developer experience. Now add enterprise-grade CQRS, Event Sourcing, and Workflows with a single Composer package and PHP attributes — no framework change required.
Every mature platform has this. Now PHP does too.
| Ecosystem | Framework | Enterprise Patterns | CQRS | Event Sourcing | Workflows | Messaging |
|---|---|---|---|---|---|---|
| Java | Spring | Axon Framework | ||||
| .NET | ASP.NET | NServiceBus / MassTransit | ||||
| PHP | Laravel / Symfony | Ecotone |
Enterprise patterns, zero boilerplate — just PHP attributes
Separate command and query models. Decouple business logic from infrastructure with clean PHP attributes.
Store events, not state. Build read models from event streams. Full audit trail with time travel and replay.
Orchestrate multi-step business processes. Handle long-running operations and compensation logic declaratively.
RabbitMQ, Kafka, SQS, DBAL. Distributed bus across services. Move sync to async with one attribute.
Automatic retries, dead letter queues, deduplication, failure isolation. Your system self-heals.
Aggregates, domain events, bounded contexts. Pure PHP objects with no framework coupling in your domain.
// Asynchronous command handler — that's the entire setup
#[Asynchronous('orders')]
#[CommandHandler]
public function placeOrder(PlaceOrder $command): void
{
$order = Order::create($command->orderId, $command->items);
$this->orderRepository->save($order);
}
// Ecotone handles the rest:
// ✓ Async execution via RabbitMQ / Kafka / SQS / DBAL
// ✓ Automatic retries on failure
// ✓ Dead letter queue if all retries fail
// ✓ Message tracing and correlationAdd Ecotone to your existing Laravel or Symfony project in minutes.
composer require ecotone/laravel