This story talks about writing Spring Cloud Functions using Java Functional Program. Before that, we can write using @EnableBinding, @Input, @Output. But these annotations have been deprecated as of 3.1 in favor of the functional programming model. We will see how to write producers, consumers using the Java Functional Programming model.
Message-driven processing is a widely adopted design pattern in service-based architecture. Such design efficiently supports a high volume of request processing as the service integration is based on non-blocking message communication.
A message broker is a key infrastructure component that conveys messages among services. However, it is a chore for developers to learn APIs of the specific message broker in order to write code for the integration with message brokers because there are many popular message brokers are available in the industry such as ActiveMQ, RabbitMQ, and Kafka.
Spring Cloud Stream is a framework for building message-driven microservice applications. Spring Cloud Stream builds upon Spring Boot and uses Spring Integration to provide connectivity to message brokers. It provides configuration of middleware, introducing the concepts of publish-subscribe, consumer groups, and partitions.