Шаблон Transactional Outbox на Go с PostgreSQL
Запишите событие с данными. Никогда не разделяйте их.
Две операции, которые должны завершиться успешно вместе, в конечном итоге провалятся по отдельности.
Ваш сервис заказов сохраняет заказ в базу данных, а затем публикует событие order.created в брокере сообщений.