Possiedo un servizio Web API 2 Web ASP.NET. Questa è l'interfaccia che i clienti utilizzeranno per inviare i dati.
Ho un servizio Windows in esecuzione su un server interno. Invierò i dati POST del cliente a questo servizio aggiungendo un ID univoco al messaggio.
Esiste un altro servizio in esecuzione su un altro server interno che verrà comunicato tramite pura programmazione asincrona del socket tramite TCPClient. Con questo intendo quando invio una richiesta non riceverò una risposta subito. Avrò un listener TCPClient che riceverà le risposte dopo un po 'di tempo (entro pochi secondi) e voglio pubblicare la risposta via ZeroMQ anche con l'API Web.
Per ogni richiesta API Web, stavo pensando di utilizzare il pattern Fire and Forget di ZeroMQ per inviare i dati con l'ID univoco (serializzato come stringa JSON) al servizio Windows. Creerò quindi un Sottocriterio ZeroMQ alla ricerca dell'ID univoco.
Il servizio Windows all'avvio legherà un socket ZeroMQ per il fuoco e dimenticherà i messaggi e collegherà un socket per i messaggi sub / pub.
Questa è una soluzione ottimizzata? C'è un modo migliore per gestire la comunicazione tra web api e servizio web?
Grazie.