Key Information

Register
Submit
The challenge is finished.

Challenge Overview

We have an existing java library for producing / consuming kafka events and we've decided to switch to RabbitMQ but during this transition we'll need to publish / consume from both kafka and RabbitMQ.

In this challenge, we need to extend this library to support both frameworks. Below is the list of challenge tasks:

1. For RabbitMQ, please use this library if possible: https://github.com/code-monastery/dropwizard-rabbitmq, we can use Dropwizard version v0.8.0

2. Right now we have classes EventProducer / EventConsumer for kafka events. We need to make EventProducer and EventConsumer interfaces, and then have implementations for kafka and RabbitMQ respectively, for example: KafkaProducer / KafkaConsumer and RabbitMqProducer / RabbitMqConsumer. Also RunnableConsumer works with Kafka and we'll need something similar for RabbitMQ as well, you can also check if this JobConsumer can be reused.

3. We'll need another implementation of EventProcuder that will produce events to both kafka and RabbitMQ. The caller of this library will use this composite producer to produce events instead of calling KafkaProducer and RabbitMqProducer.

4. Please provide function / integration tests for the new RabbitMQ classes, you may need to build a simple dropwizard service to test against, here's an example: https://github.com/code-monastery/dropwizard-rabbitmq/blob/master/src/test/java/io/codemonastery/dropwizard/rabbitmq/example/producer/JobProducerService.java

5. There's isn't a readme for this library yet, please provide one with details on how to build, deploy, test and use this library. Try to make it as easy as possible to do all these, you can use docker for testing kafka / RabbitMQ.

6. Please complete code documentation for this library.

Register to get access to the code in the challenge forum.

Final Submission Guidelines

Updated code that covers all the requirements.
Update the readme (if necessary) to explain how to deploy the application including configuration information
A separate verification guide with details on how the new features can be verified.

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30054639