/ Je dobré nazvať služby tretích strán z agregátu axon - jar, axon

Je to dobrý nápad zavolať služby tretích strán z agregátu axon - jar, axon

Mám axon agregát. Spravuje príkaz a pred aplikáciou udalosti musí vyvolať službu tretích strán na overenie niektorých parametrov, podľa tejto validácie platí udalosti alebo nie. Je to dobrá prax? Alebo som urobil validáciu pred tým, ako som poslal príkaz?

@Aggregate
public class SomeAggregate {
[...]
@CommandHandler
public void someHandler() {
if(thirdPartyService.invoke) {
apply(...)
}
}
}

odpovede:

2 pre odpoveď č. 1

Ak je to neblokujúca (doména) služba,niečo ako počítač s konečným stavom, je dobré zavolať z agregátu, pretože to bude pravdepodobne čoskoro ukončené. Služba "tretej strany" mi však znie ako odchádzajúci hovor, čo môže chvíľu trvať.

Keď Axon načíta agregát, zablokuje agregát, takže žiadna iná niť nemôže zmeniť jeho stav / handle príkazy na ňom. Služba tretej strany by znamenala, že agregát je ešte viac blokovaný.

Preto by som vám odporučil, aby ste vo vašom súhrne nepozvali službu tretej strany. Buď zavolajte službu pred vstupom do agregátu