Sto lavorando alla creazione di un nuovo sistema di elaborazione dati, in cui vi sono più passaggi ciascuno soddisfatto da diversi servizi. Ad esempio, esiste un servizio di pianificazione che dà il calcio a qualcosa, un servizio di analisi che esegue l'elaborazione e un servizio di notifica che riassume e invia i risultati. I dati fluiscono in quell'ordine
La mia domanda principale su quale progettazione sarebbe meglio se il servizio di analisi dovesse conoscere il servizio di notifica? O il servizio di notifica dovrebbe conoscere l'analisi?
Il mio pensiero iniziale è che utilizzando un bus di servizio, il servizio di notifica può semplicemente essere sottoscritto a tutti i risultati di analisi che vengono trasmessi. In tal modo, se il servizio di notifica viene sostituito o modificato, non è necessario apportare alcuna modifica al servizio di analisi. Ciò significa anche che un cliente che desidera avviare un'analisi e ricevere una notifica dovrebbe chiamare prima il servizio di notifica per dirgli come gestire il risultato che alla fine otterrà prima di dare il via all'analisi effettiva.
L'idea opposta è che il servizio di analisi debba semplicemente chiamare direttamente nel servizio di notifica, quindi il servizio di analisi deve sapere cosa fare per creare una chiamata in notifica. Ciò significa che il cliente dovrà raggruppare le istruzioni specifiche per la notifica che verranno passate nel servizio di analisi per poterle successivamente consultare per sapere cosa passare alla chiamata di notifica.
Sembra che l'approccio al bus di servizio del servizio di notifica che ottiene e che elabora i risultati dell'analisi sarebbe migliore perché potremmo anche aggiungere altri servizi in futuro che poi fanno qualcosa con un risultato senza dover cambiare il servizio di analisi per chiamarlo esplicitamente .
Qualcuno può fornire alcune informazioni su quale approccio potrebbe funzionare meglio per essere più facile da sviluppare, mantenere, supportare?