Open richsage opened 12 years ago
Are you planning to use for example RabbitMQBundle to create workers in order to deal with a hugh amount of notifications?
@sdiaz to be honest I hadn't got around to thinking how I'd enqueue messages for sending. At the moment there's no expoential backoff capability which would definitely be required for lots of queued messages, so I am open to suggestions for the best way to handle all this :-)
In a scalable project we have defined the use of RabbitMQ for dealing with general notifications, while direct ones uses the bundle to push them without queuing as they are few and need a faster delivery.
We also use noSQL to log the activity (easy comparison here)
The commercial option is to use Amazon SQS
@sdiaz that's a great diagram :-) The use of workers definitely makes sense. I wonder whether this might be better solved by providing some method of coupling a queue service to the bundle (interface or similar) that would then be able to support RabbitMQ, Gearman or similar at a later date.
it wouldn't be a solution for failure/retry/backoff, but using the Symfony kernel terminate event (like Swiftmailer does with its memory spool transport) would be good for executing the slower notifications after the user has received their HTTP response.
This is to avoid being potentially blocked by APNS/C2DM for many connections