rabbitevents/redis-transport
A Redis pub/sub transport driver for RabbitEvents, letting Laravel applications broadcast and handle events over Redis instead of RabbitMQ. Swap brokers with minimal config changes while keeping the same event API and payloads.
Architecture fit
rabbitevents/foundation ^10.0. It lets a Laravel service keep the RabbitEvents producer/listener API and consumer-group model while swapping AMQP for Redis Streams — attractive where Redis is already operated for cache/queue/session and a RabbitMQ cluster is not.rabbitevents:queue:{queue} (retries, requeues, rabbitevents:retry, failed messages). Previously these went to the shared stream and were re-delivered to every consumer group — a fan-out amplification bug, not just an inconvenience.{queue}.failed via makeFailedQueue() makes the failed-message lifecycle (rabbitevents:failed, retry, forget, flush) functional on Redis. This closes the gap that most likely blocked production adoption of the 0.0.x line.Integration feasibility
Technical risk
--sleep (default 5s) is now ignored because Redis cannot delay delivery; retries fire immediately. Any team relying on the default backoff for downstream protection loses it without an error.requeue()/reject(requeue: true) now come back, in order. If consumers were implicitly at-most-once after requeue, expect duplicate side effects.rabbitevents:queue:{queue}, {queue}.failed) with no stated trimming policy.Key questions
--sleep is a no-op — is a circuit breaker or delayed-retry strategy on the roadmap?XREADGROUP work under Redis Cluster (key-slot co-location / hash tags), and on managed Redis (ElastiCache/Memorystore) with ACL key patterns?Stack fit
Migration path
rabbitevents/foundation ^10.0 + this package 1.0.0. Do not split across deploys.Compatibility
--sleep acceptance in config must be treated as deprecated-in-effect; keep the config key but stop relying on it, or fail loudly at boot if a non-zero sleep is configured.Sequencing
{queue}.failed and PEL backlog before the upgrade — this is the new failure surface.retry/requeue, confirm PEL reclaim and ordered redelivery.Maintenance
MAXLEN/XTRIM) and memory alerts per key family, otherwise the failed queues become an unbounded growth path.Support
rabbitevents:failed, retry, forget, flush now work on Redis, but there is no equivalent of the RabbitMQ management UI. On-call needs XINFO GROUPS, XPENDING, XCLAIM, XLEN fluency or an internal wrapper CLI.Scaling
Failure modes
{queue}.failed.Ramp-up
--sleep.How can I help you explore Laravel packages today?