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 or Symfony · 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 row names what you'd need to add to match Ecotone, and the architectural ceiling that integration cannot fix.
Transports point at each other. No shared topology. Single-tenant.
Queue connections aren't a service topology. Per-pair custom code.
Cross-service messaging that inherits every guarantee your in-process messaging already has.
Haven’t found what you’re looking for? Contact us
Unleash the power of Messaging in PHP
and push productivity to the higher level
