Sto prendendo in considerazione l'utilizzo di un database di documenti NoSQL come coda di messaggistica.
Ecco perché:
- Voglio che un client pubblichi un messaggio (qualche oggetto serializzato) sul server e non debba attendere una risposta sincrona.
- Voglio essere in grado di estrarre i messaggi dalla "coda" in base a determinati criteri, che possono essere più sofisticati di un semplice livello di priorità (sto lavorando su un'app Web ospitata, quindi voglio dare a tutti i miei clienti una buona quantità di "tempo di calcolo", e non lasciare che un cliente manchi tutta l'elaborazione).
- Voglio che la coda sia duratura: se il server si interrompe, desidero che tutti i messaggi rimanenti vengano gestiti al momento del backup.
Quindi, sto considerando di usare MongoDB o RavenDB come una coda di messaggi. Il client può inviare l'oggetto messaggio a un servizio Web che lo scrive nel database. Quindi, il servizio che esegue il lavoro può richiamare i vari tipi di messaggi in base a qualsiasi criterio che possa insorgere. Posso creare indici attorno agli scenari per renderlo più veloce.
Quindi - sto cercando qualcuno che faccia un buco in questo. Qualcuno l'ha fatto con successo? Qualcuno ha provato questo e ha fallito in qualche modo?