This is sort of sequel to this question. Can I use "plain" Apache Kafka Binder together with functional model? So far using annotation based configuration I mixed both, spring-cloud-stream-binder-kafka
for simple consuming / producing and spring-cloud-stream-binder-kafka-streams
for advanced stream processing in one application.
Functional model seems to be supported only by streams
binder, and if I try to mix both approaches - annotation based for simple usage and functional for streams, stream binding is not registered.
spring.cloud:
stream:
function:
definition: processStream
bindings:
processStream-in-0:
destination: my-topic
simple-binding-in:
destination: another-topic
public interface SimpleBinding {
String INPUT = "simple-binding-in";
@Input(INPUT)
SubscribableChannel simpleIn();
}
@Component
public class SimpleListener {
@StreamListener(SimpleBinding.INPUT)
public void listen(@Payload SomeDto payload) {
}
}
@Configuration
public class FunctionalStream {
@Bean
public Consumer<KStream<String>> processStream() {
return eventStream -> eventStream.map()
}
}
@EnableBinding(SimpleBinding.class)
is present on configuration class. Is it preferred / supported to mix both as described or should I use streams-binder
even for simple message consumption?