Ha senso implementare un sistema di code di messaggi come RabbitMQ o Kafka allo scopo di memorizzare i dati in una coda? Ad esempio, questo potrebbe essere fatto per gestire cose come notifiche e messaggistica istantanea tra gli utenti, mentre si stanno ancora memorizzando le informazioni dei messaggi in un vero database come Cassandra in questo modo:
- Un utente invia un messaggio a un amico.
- Il server riceve la richiesta (probabilmente un POST HTTP).
- Il server elabora la richiesta scrivendo il messaggio nel database, che non verrà mai eliminato e aggiungendo inoltre il riferimento a quel messaggio a una coda di notifiche che rappresenta nuovi messaggi .
- L'amico è iscritto al flusso di notifiche e riceve immediatamente nuovi messaggi.
Questa sembra un'applicazione molto utile delle code di messaggi. Tuttavia, volevo assicurarmi che avesse senso utilizzarlo invece di utilizzare solo un database e eventi basati su server (come quello di Node.js) per questo particolare scopo.
Modifica: Si noti che non esiste, tuttavia, un processo di backround distinto dall'applicazione principale. Quindi implementare una coda di messaggi non farà molta differenza in termini di ottimizzazione asincrona.