Send commands and publish events between PHP services through the brokers you already operate. #[Distributed] handlers, Distributed Bus + Service Map for multi-broker topology, MessagePublisher for outbound integration — transport-agnostic, no custom glue per service pair.
Composer package · Laravel, Symfony, or Tempest · PostgreSQL or MySQL · RabbitMQ, Kafka, SQS, Redis, or DBAL outbox
First-party packages for RabbitMQ, Kafka, SQS, Redis, and DBAL. Ecotone fits your existing stack — no new cluster to operate, no migration of your message infrastructure.
Rename classes, move handlers, refactor namespaces — messages still route correctly. The endpoint ID is the contract; FQCN is not on the wire.
Tenant-isolated event streams, tenant-routed message channels, priority routing by customer status. Multi-tenancy as a topology property, not a WHERE clause.
Correlation IDs and parent-message IDs propagate from command to every emitted event without middleware. Your OpenTelemetry spans stitch themselves end-to-end — no bundle to install, no stamps to remember.
A copy of the message is dispatched to every handler. Each retries independently, fails independently — no shared envelope, no sibling re-runs. One failing subscriber doesn't abort the others.
Each tool below is a capable choice for its slice. Ecotone covers the same ground and adds the operational layer around it — so aggregates, projections, sagas, and messaging share one model and one set of guarantees.
A reliable message transport between services.
Where Ecotone goes further than this library
Strong queue connections with operational tooling.
Where Ecotone goes further than this library
Cross-service messaging that inherits every guarantee your in-process messaging already has.
#[Distributed] handlers and the Distributed Bus turn any PHP service into a messaging participant on the brokers you already operate.Haven’t found what you’re looking for? Contact us
Unleash the power of Messaging in PHP
and push productivity to the higher level
