- based on : https://github.com/bastman/codechallenge-watermark-service
- but uses kafka as persistent storage engine
- rest-api (as producer): create a job -> store job into kafka-topic
- kafka-worker: process jobs from kafka-source-topic and put result into kafka-sink-topic
- rest-api (as consumer): listen to kafka-sink-topic and keep results in-memory
- rest-api: provide interface to access jobs being processed.
- proof-of-concept.
- try to get rid of jackson's type hints, which pollute the data model
- cleanup code base
- provide tests
- kafka (docker-image: spotify/kafka)
- kafka-worker (spring-boot, kafka-streams)
- kafka-rest-api (spring-boot, spring-kafka)
$ docker-compose up
$ ./gradlew :kafka-worker:bootRun
$ ./gradlew :kafka-rest-service:bootRun
- the default installation assumes kafka running at 127.0.0.1:9092
- if you run kafka on a different host/port, you may need to adjust the kafka-server settings defined application.yml of each gradle module