You can receive messages by configuring a MessageListenerContainer and providing a message listener or by using the @KafkaListener annotation.
Kafka stands out for its ability to handle high throughput and provide scalability, fault tolerance, and message retention. These features make Kafka ideal for a notification system where reliability and real-time processing are crucial.
Kafka can not push notifications to consumers. Consumers have to keep polling/consuming messages in order to receive them. This is the only way messages stored in Kafka can flow to consumers. The Consumer Design section in the Apache Kafka documentation explains why "consumer pulling" was choosed over "broker pushing".
The notification email service consumes email requests from the Kafka notification topic and processes them to send them to a third-party service. Modules like PT, TL, PGR etc make use of this service to send messages through the Kafka Queue.
How to Produce a Message into a Kafka Topic using the CLI? Find your Kafka hostname and port e.g., localhost:9092. If Kafka v2. 5+, use the --bootstrap-server option. If older version of Kafka, use the --broker-list option. Provide the mandatory parameters: topic name. Use the kafka-console-producer.sh CLI as outlined below.
Apache Kafka is often used to deliver a message to a single instance of an application or to deliver copies of a message to multiple different applications. But it can also broadcast messages to all instances of a single application.
There are 2 ways to broadcast messages in Kafka: Using unique consumer groups for each instance. Using Partition Assignment (Standalone Consumers)