Hi All,<br><br>Our website have daily active users around 50,000 and we want use rabbitmq as message broker for &quot;~real time web notifications&quot; for lot of events generated by users.<br>Need some help in designing for our use case. our requirements are as follows,<br>
<br>1. Users are part of different communities, a user can be part of multiple communities.<br>2. when a user uploads a Image, all the users in that community need to be notified like on facebook.<br>3. users can form groups inside each community. the targeted group alone need to be notified based on scenario.<br>
<br>here, user uploading an image is just one of the scenarios we have.<br>right now we have designed the following way,<br><br>Producer - <br>����� Exchange name - &quot;web notifications&quot;<br>����� Exchange Type - &quot;direct&quot;<br>
����� Routing key - &quot;gallery&quot;<br>����� message body - { producer_user_Id: 123, target_user_Ids: [23, 45, 56], type: &quot;image_upload&quot; }<br>Consumer - <br>����� Exchange name - &quot;web notifications&quot;<br>
����� Exchange type - &quot;direct&quot;<br>����� Routing key - &quot;gallery&quot;<br>����� queue name - no name given - auto generated<br>we are consuming the messages and processing them based on type in message body and storing it in redis for each user in target_user_Ids,<br>
so regardless of user being online or offline we are persisting notifications and delivering them once user logs in.<br>we are not sure if the current design is proper since all messages from 50k users are routed to only few queues( &lt; 10 ) and few worker-consumers.<br>
we also need to notify the users via e-mail about the events.<br>What is a good design pattern for our use case - like number of queues?, exchange type?, number of exchanges( web, e-mail ) ??<br>Please let me know if anyone need more information.<br>
<br>Thank you,<br>Bhaskar teja<br><br>