Runnable examples covering the full Ecotone feature set — handlers, aggregates, sagas, event sourcing, projections, workflows, multi-tenancy, outbox, and more. Each example is self-contained and runs end-to-end in seconds.
docker compose up -d && docker exec -it ecotone-quickstart /bin/bashThen pick any example directory and run it:
composer install
php run_example.php- Asynchronous —
#[Asynchronous]handlers with in-memory and DBAL channels - BuildingBlocks — the core handler/aggregate/saga vocabulary in one place
- BusinessInterface — declarative DBAL queries via
#[DbalBusinessMethod] - ErrorHandling — retry strategies, error channels, and dead letter replay
- EventProjecting / PartitionedProjection — catch-up and partitioned projections on an event-sourced stream
- EmittingEventsFromProjection — projections that publish derived events
- Microservices / MicroservicesAdvanced — Distributed Bus with cross-service events and commands
- MultiTenant — per-tenant connections, event stores, and async channels (Laravel + Symfony variants)
- OutboxPattern — guaranteed message delivery via the outbox pattern
- RefactorToReactiveSystem — staged refactor from a procedural service to a message-driven one
- StatefulProjection — projections with internal state
- Testing —
EcotoneLite::bootstrapFlowTestingpatterns for sync and async flows - Workflows — stateless workflows, saga-based workflows, and async stateless variants
- CustomEventStoreProjecting — custom event store implementations
Ecotone is the enterprise architecture layer for Laravel and Symfony.
One Composer package adds CQRS, Event Sourcing, Sagas, Projections, Workflows, and Outbox messaging to your existing application — all via declarative PHP 8 attributes on the classes you already have.
Visit ecotone.tech to learn more.
Works with Symfony, Laravel, or any PSR-11 framework via Ecotone Lite.
See the quickstart guide and reference documentation. Read more on the Ecotone Blog.
Use issue tracking system for new feature request and bugs. Please verify that it's not already reported by someone else.
If you want to talk or ask questions about Ecotone
If you want to help building and improving Ecotone consider becoming a sponsor:
PHP, DDD, CQRS, Event Sourcing, Sagas, Projections, Workflows, Outbox, Symfony, Laravel, Service Bus