- REST API (Reading ) + projection consumer that updates the db in a realtime fashion.
- Sources scraping and mapping
built using reactor reactive stream on jvm and high performance batch db writing using jdbc template api
is built using reactive kafka that integrate reactive streams with kafka API it's also use protobuf serialization protocol in the published messages and communication between the producer and consumer.
- in the Sources/dataProvider microservice we have a scheduled task that run every day or week for each source here
- the Sources/dataProvider fetch and map the data to a common structure then push it to kafka
- in the Projection there is a reactive consumer running to consume and update the DB in a real time with backpressure applied.
- finally, the REST API part here
- Separating the projection consumer to be a separate service using kafka-connect
- Using elastic search cluster as a primary source of data
- Using kubernetes
- More test coverage
- jave 15
- maven
- Docker
- run
mvn clean packageto create the jar file - run
docker-compose up --build
- call
${localhost/docker-machine-ip}:8080/categoryto list all the available categories - call
${localhost/docker-machine-ip}:8080/category/{Category_id}/product/{Product_name}to list all the available products that have similar name with prices eg: callhttp://192.168.99.100/:8080/category/1/product/iphone
