Nesta aula, tive uma dúvida em relação ao construtor da classe KafkaService. Não encontrei outro tópico sobre esse assunto então resolvi compartilhar o que descobri pesquisando.
O professor utilizou a Interface ConsumerFunction como parâmetro para a classe KafkaService. Essa Interface é considerada uma Interface Funcional, pois é a uma interface e tem apenas um método a ser implementado.
Nas classes consumidoras, como a FraudDetectorService, a classe KafkaService é instanciada recebendo no método construtor uma referência ao método parse. O Java interpreta esse método como uma instância da interface ConsumerFunction, pois o método tem a mesma assinatura do método consume da interface.
Encontrei esse artigo sobre Interfaces Funcionais, pode ajudar entender mais: https://medium.com/@mvalho/java-8-functional-interfaces-tornando-o-java-mais-legal-72401462d0e2