When working with critical data that need to consistent and need to accurate to catch all requests.
▪ When the database update and sending of the message should be atomic to make sure data consistency.
▪ For example the order sale transactions, because they are about financial business. Thus, the calculations must be correct 100%.
▪ To access this accuracy, must be sure that our system is not losing any event messages.
▪ The Outbox Pattern should be applied this kind of cases
https://microservices.io/patterns/data/transactional-outbox.html