как ты отправишь сообщеиние после завершения транзакции? я могу ток во время транзации послать запрос.
разбиваешь метод на 2:
- первый делает транзакционную работу с БД, на нём висит аннотация (надо ещё посмотреть какая и реально ли она работает, фокус с flush наводит на мысли, что может это и фикция - т.к. flush НЕ коммитит данные, только выполняет работу в БД)
- второй фигачит сообщение в кафку
метод, объединяющий их (вызывает сначала первый, потом второй) выполняется вне транзакционного контекста