3 ms·
Correct. A business logic controller can not directly corner the outside world, it must talk through a service. This is nice because it prevents leaky abstract
by exabrial 6y ago
Correct. A business logic controller can not directly corner the outside world, it must talk through a service.
This is nice because it prevents leaky abstractions into the controller layer. Actions across services that need to be atomic can be grouped in an XA transaction:
// Xa start
databaseService.reset password(user);
emailService.notifyPasswordChange(user);
// Xa commit