Добавить обработчик событий Kafka после транзакции, совершенной в Springboot с Kotlin - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть слушатель Kafka, получающий авро-сообщение:

@Service
class MyListener(private val useCase: MyUseCase) {
    @KafkaListener(topics = ["\${app.topic}"], autoStartup = "\${app.event.auto-startup:true}")
    fun listen(message: decision_made_v1) {
        useCase.perform(message.payload)
    }
}

В другой части моего приложения есть операция с репозиторием:

@Component
class CreateCreditAnalysisUseCase(private val myRepository: MyRepository) {
    fun execute(command: MyCommand): CreditAnalysis {
        return myRepository.save(command)
    }
}

Как мне разрешить моему слушателю Kafka получать и звонить useCase.perform только после того, как myRepository.save зафиксировано в db?

...