A list of nice to add transports. Feel free to make a proposition.
makasim opened this issue ยท 30 comments
I created this issue to keep track on transports that would be nice to add. So if you think that we should add support for something comment here instead of opening a new issue.
- - AMQP 1.0 (ActiveMQ, AmazonMQ)
- -
MongoDB (#430) - - ZeroMQ
- -
PHP-FPM (blog)- makasim/php-fpm-queue - - WebSocket, soket.io or centrifugo,
- - pusher
- -
Autobahn / WAMP- #573 - - NSQ
- - Semaphore
- - Iron.IO
- - nats.io
- - ElasticMQ
- - xobotyi/beansclient. Beanstalkd client with no deps.
- - MQTT.
- -
Azure Queue Storage- assoconnect/enqueue-azure - -
rabbitmq-cli-consumer- POC makasim/rabbitmq-cli-consumer-client - - Redis Streams
- - Amazon SNS
- - Amazon Kinesis
- - Tarantool Queue.
- - KubeMQ
Feel free to chat here.
Some sort of in-memory transport would also be very nice for improved functional testing, since the null
transport just discards the message, meaning that it's impossible to take a look at the queue or test the behaviour of queue listeners. Other transports might work, but require some hacking.
@pascaldevink I think about it from time to time, though I still doubt it should be implemented (or even used) cuz its sync nature is far from a real async MQ transport reality.
For example, Using sync transport you can access current user (from the session) one way or another. Tests would pass, the app would work but later if you decide to switch to real broker everything breaks.
Autobahn / WAMP (http://wamp-proto.org)
I'm also seeing queue systems, not just the transport?
Maybe beanstalkd then?
@BallisticPain , beanstalk already implemented https://github.com/php-enqueue/enqueue-dev/blob/master/docs/transport/pheanstalk.md.
AMQP 1.0, ZeroMQ and PHP-FPM looks most interesting to me.
+1 for NSQ
+1 for NSQ
+1 ZeroMQ
@makasim I'm considering a PR to support Azure Service Bus or Azure Queue Storage. Do you know if someone is already working on it?
@sylfabre this great! Do not hesitate to reach me out, I'll be glad to support you.
As for integration, Nobody is working on it as far as I know
Could I suggest this one https://github.com/pdffiller/qless-php
+1 nats.io
+1 ZeroMQ
Amazon Kinesis
How about a transport for the Kafka Rest Proxy? It would be useful for integrating with Kafka in environments where the php-rdkafka extension is not installed.
I would be happy to add a PR for it
+1 AMQP 1.0
REST ? (using kubernetes dns to round robin api call, perfect for PHP consumer with fpm)
+1 for mqtt as it then would be another avenue for propagating data into the likes of Home Assistant.
Is it support Redis Pubsub with swoole ?
https://www.swoole.co.uk/article/redis-swoole-pubsub
Could be lesser CPU consumption
It seems, that assoconnect/enqueue-azure is abandoned (see the only existing pull request). It would be good to either take ownership of this transport or incorporate the code to main library.
hi
i don't want to add any broker to the list
i'd like to implement transport
at least try to implement
quick response will be proof of the life ...
Use existing transports as an example.
i'll try nats
could you please add some links for start (i meant high level design/description of queue use cases etc ) i hope you have some favorites
also i understand that it is not urgent issue
What about Cloudflare Queues?
Use existing transports as an example.
I started to use pheanstalk as an example
But did not find PheanstalkDriver.php within drivers
Does it mean that pheanstalk is not part of enqueue? As far as I understand XYZDriver.php is kind of registrator for XYZ transport
Do I need to add NatsDriver.php ?
And additional question - do you have example of application based on enqueue?
I tried to use dependents on packagist but did not find simple example
Does it mean that pheanstalk is not part of enqueue? As far as I understand XYZDriver.php is kind of registrator for XYZ transport
Do I need to add NatsDriver.php ?
There are two levels of abstraction: low-level transport, and high-level (opinionated) driver. Driver level is optional if you don't need the features it provides. Transport is a corner stone, everything is built on top of it.
And additional question - do you have example of application based on enqueue?
Nope, I personally cannot provide any examples. I've not used the lib for years.