Ci sono risorse infinite sulla creazione di CRUD per le risorse REST, ma non riesco a trovare molto da fare lo stesso per Messaging.
Dati due servizi A
e B
dove A
riceve richieste in entrata che avvia la creazione della risorsa R
. Quando A
riceve la richiesta, esegue un po 'di elaborazione e crea R
e poi vuole memorizzare R
in B
usando JMS. Dopo la creazione, le operazioni di lettura / aggiornamento / eliminazione dovrebbero essere disponibili su R
.
Posso vedere un paio di approcci diversi qui:
-
Utilizza un'entità generica che contiene
operation
(crud) e qualche oggetto generico che può essere castato aR
se si aggiorna e aid(R)
se si sta leggendo o eliminando. L'entità è pubblicata su una coda comuneQ
. -
Utilizza entità tipizzate rigorosamente per le diverse operazioni in cui ogni operazione è pubblicata sulla propria coda
Qc, Qr, Qu, Qd
. -
Utilizza entità tipizzate rigorosamente per le diverse operazioni in cui ogni operazione è pubblicata sulla stessa coda
Q
ma con diversotype
.
Dalla mia comprensione di JMS di solito si consiglia di utilizzare code separate per diversi tipi di messaggi per evitare problemi di congestione in cui un tipo di messaggio può bloccare per tutti gli altri.
Questo significa che le operazioni CRUD dovrebbero avere code separate o dovrebbero essere considerate per gestire lo stesso tipo di risorsa e quindi condividere una coda?