A Java Lagom service which only consumes from Kafka topic (Subscriber only service)

Reading Time: 2 minutes

Subscriber only service means an application which only consumes, does not produce.

We have generally seen the applications which both produces and consumes data from a Kafka topic but sometimes we need to write an application which only consumes data i.e. consumes data from a 3rd party service. So in this blog I am going to explain how to write a Lagom service which only consumes data (does not produce any data).

Add below dependency to your impl pom.xml:

We need to create a separate module kafka-connect in Lagom project. That module will contain a Service Descriptor declaring the topic service will consume from.

Then, add kafka-connect dependency in impl module:

Then, to consume data implement consumer as below:

Finally, you need to bind KafkaConsumer as Eager singleton and KafkaService in HelloModule:

To connect with external kafka, made below changes in root pom:

and, add below configuration in application.conf file:

That’s it. Now you need to start zookeper and Kafka at your local machine, create topic greetings and then produce any message in Kafka. As a message will be produced in Kafka, consumer will consume data and will print the message.

I hope you enjoyed the blog.

You can get full code here.

Written by 

Rishi is a Lead Consultant, with experience of more than 7 years. Rishi is product focused developer who loves developing both front-end user interfaces and scalable back-end infrastructure. He is a good team player, quick learner and a humble person. He has good time management skills, aimed to give best results and fully dedicated towards his work & responsibilities. He is able to work as individual and as well as in team. He loves to share his knowledge, therefore he often writes technical blogs.

1 thought on “A Java Lagom service which only consumes from Kafka topic (Subscriber only service)3 min read

Comments are closed.

%d bloggers like this: