In CQRS, se una saga (o più precisamente un gestore di processi in base al libro Viaggio CQRS) invia un nuovo comando per modificare gli aggregati, come posso garantire che questo comando non sia possibile inviare da nessun'altra parte (ad es. programmatore sulla parte UI). Questo è il comando è solo per l'uso "interno" della saga?
Come gestire una situazione, in cui il comando è "privato" solo per la saga.
Sto scrivendo un'app in Java con Axon framework. Ma questo può essere collegato a qualsiasi implementazione (anche in C #).
Mi è venuta in mente una sola soluzione: archiviare il file della classe di comando nel pacchetto di saga e rendere privato il pacchetto di costruzione della classe. Quindi solo la saga può istanziare il comando. Non riesco a rendere l'intera classe privata perché deve essere visibile dai gestori di comandi dell'aggregato.
C'è un modo migliore?