rajadilipkolli / spring-boot-microservices-series-v2 Goto Github PK
View Code? Open in Web Editor NEWSpring boot cloud series with latest technologies
License: MIT License
Spring boot cloud series with latest technologies
License: MIT License
Currently we are using kraft mode in all services except in inventory-service/docker/docker-compose.yml , move to kraft mode
Currently circuit breaker is not supported by spring 6 declarative client hence reverting it.
performing marriage of JOOQ and JPA. All Read operations will go to JOOQ, whereas write operations will go to JPA
Implement Deadletter queue in below services
currently while saving product, we are sending message to kafka.
Write an integration test to verify that message is correctly send and consumed
Lombok is using deprecated and unsafe java internals. which is acting as an obstacle while upgrading to any latest version of java.
Configure Exception Handler for below services
Refer GlobalExceptionHandlingControllerAdvice.java
from order-service and update the IT test cases to demonstrate validation is picked up(Refer to OrderControllerIT.java#shouldReturn400WhenCreateNewOrderWithoutItems
As a customer, I would like to see the status of the orders created.
Technical Implementation:
In Order-service microservice we have order details, hence an endpoint should be exposed here which queries by customerId.
Change the response of the Object to include created Date.
Have a paginated API to give response.
Once this is done, we should expose endpoint in payment-service to call this endpoints
Implement pagination in catalog service
With the current configuration, the messages are not retained, disposed of once sent. Having durable store will help to process messages sent earlier.
In all listener services makes sure that if it is registering for the first time then processing should be set to earliest and when registered change it to latest.
Add chaos monkey feature to catalog service and inventory service
The method in leverages OAuth2 authentication to provide personalized services. It is crucial to ensure its reliability through comprehensive unit testing. This issue tracks the task of implementing these tests.
Currently due to any reason if status of order is NEW and is not processed due to timeout or any other reason it remains In NEW Status, system should have a mechanism to retry the order
While saving anything once we save data in db and publish it in queue, which can lead to many problems, like db connection hanging when queue is down.
Create arch units for repository which validate rules of project coding standards.
ref: ArchUnit
In CatalogService we are exposing the Entity to end user as part of API.
We shouldn't be doing it, instead create Request and Response POJOs along with mapper to fix this vulnerability.
Swagger documentation should be added in below services
While doing Jsonpath assert and by using is(BigDecimalValue) we are getting 100 instead of 100.0 we need to check how to fix it inside OrderControllerIt Test. and testcase is for getOrdersByCustomerId.
use docker login to login and remove declarations from pom.xml
use the testcontainers plugin to generate
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
This repository currently has no open or pending branches.
.devcontainer/devcontainer.json
mcr.microsoft.com/devcontainers/java 1-21-bullseye
ghcr.io/devcontainers/features/java 1
ghcr.io/devcontainers/features/docker-in-docker 2
api-gateway/docker-compose.yml
redis 7.4.0-alpine
dockertmt/mmv2-service-registry-17 0.0.1-SNAPSHOT
dockertmt/mmv2-config-server-17 0.0.1-SNAPSHOT
catalog-service/docker/docker-compose-app.yml
catalog-service/docker/docker-compose.yml
postgres 16-alpine
apache/kafka 3.8.0
dockertmt/mmv2-config-server-17 0.0.1-SNAPSHOT
dockertmt/mmv2-service-registry-17 0.0.1-SNAPSHOT
dockertmt/mmv2-inventory-service 0.0.1-SNAPSHOT
deployment/docker-compose-tools.yml
postgres 16-alpine
redis 7.4.0-alpine
apache/kafka 3.8.0
quay.io/keycloak/keycloak 25.0.4
dockertmt/mmv2-config-server-21 0.0.1-SNAPSHOT
dockertmt/mmv2-service-registry-21 0.0.1-SNAPSHOT
dockertmt/mmv2-api-gateway 0.0.1-SNAPSHOT
dockertmt/mmv2-catalog-service 0.0.1-SNAPSHOT
dockertmt/mmv2-inventory-service 0.0.1-SNAPSHOT
dockertmt/mmv2-order-service 0.0.1-SNAPSHOT
dockertmt/mmv2-payment-service 0.0.1-SNAPSHOT
dockertmt/mmv2-retail-store-webapp 0.0.1-SNAPSHOT
grafana/grafana 11.1.4
grafana/loki 3.1.1
grafana/promtail 3.1.1
prom/prometheus v2.54.0
grafana/tempo 2.5.0
prom/alertmanager v0.27.0
deployment/docker-compose.yml
postgres 16-alpine
redis 7.4.0-alpine
apache/kafka 3.8.0
quay.io/keycloak/keycloak 25.0.4
dockertmt/mmv2-config-server-21 0.0.1-SNAPSHOT
dockertmt/mmv2-service-registry-21 0.0.1-SNAPSHOT
dockertmt/mmv2-api-gateway 0.0.1-SNAPSHOT
dockertmt/mmv2-catalog-service 0.0.1-SNAPSHOT
dockertmt/mmv2-inventory-service 0.0.1-SNAPSHOT
dockertmt/mmv2-order-service 0.0.1-SNAPSHOT
dockertmt/mmv2-payment-service 0.0.1-SNAPSHOT
dockertmt/mmv2-retail-store-webapp 0.0.1-SNAPSHOT
inventory-service/docker/docker-compose-app.yml
inventory-service/docker/docker-compose.yml
postgres 16-alpine
apache/kafka 3.8.0
dockertmt/mmv2-config-server-21 0.0.1-SNAPSHOT
dockertmt/mmv2-service-registry-21 0.0.1-SNAPSHOT
dockertmt/mmv2-catalog-service 0.0.1-SNAPSHOT
order-service/docker/docker-compose-app.yml
order-service/docker/docker-compose.yml
postgres 16-alpine
apache/kafka 3.8.0
dockertmt/mmv2-config-server-21 0.0.1-SNAPSHOT
dockertmt/mmv2-service-registry-21 0.0.1-SNAPSHOT
dockertmt/mmv2-inventory-service 0.0.1-SNAPSHOT
dockertmt/mmv2-catalog-service 0.0.1-SNAPSHOT
payment-service/docker/docker-compose-app.yml
payment-service/docker/docker-compose.yml
postgres 16-alpine
apache/kafka 3.8.0
dockertmt/mmv2-config-server-21 0.0.1-SNAPSHOT
dockertmt/mmv2-catalog-service 0.0.1-SNAPSHOT
dockertmt/mmv2-service-registry-21 0.0.1-SNAPSHOT
dockertmt/mmv2-inventory-service 0.0.1-SNAPSHOT
dockertmt/mmv2-order-service 0.0.1-SNAPSHOT
retail-store-webapp/docker/docker-compose.yml
quay.io/keycloak/keycloak 25.0.4
service-registry/docker-compose.yml
dockertmt/mmv2-config-server-17 0.0.1-SNAPSHOT
.gitpod.Dockerfile
.github/workflows/api-gateway.yml
actions/checkout v4
graalvm/setup-graalvm v1
.github/workflows/catalog-service.yml
actions/checkout v4
graalvm/setup-graalvm v1
.github/workflows/config-server.yml
actions/checkout v4
graalvm/setup-graalvm v1
.github/workflows/gatling-tests.yml
actions/checkout v4
actions/setup-java v4.2.2
.github/workflows/greetings.yml
actions/first-interaction v1
.github/workflows/inventory-service.yml
actions/checkout v4
graalvm/setup-graalvm v1
.github/workflows/label.yml
actions/labeler v5
.github/workflows/order-service.yml
actions/checkout v4
graalvm/setup-graalvm v1
.github/workflows/payment-service.yml
actions/checkout v4
graalvm/setup-graalvm v1
.github/workflows/retail-store-webapp.yml
actions/checkout v4
graalvm/setup-graalvm v1
.github/workflows/service-registry.yml
actions/checkout v4
graalvm/setup-graalvm v1
.github/workflows/sonar-cloud.yml
actions/checkout v4
actions/setup-java v4
actions/cache v4
catalog-service/.github/workflows/maven-dev.yml
actions/checkout v4
actions/setup-java v4.2.2
catalog-service/.github/workflows/maven-main.yml
actions/checkout v4
actions/setup-java v4.2.2
inventory-service/.github/workflows/maven-dev.yml
actions/checkout v4
actions/setup-java v4.2.2
inventory-service/.github/workflows/maven-main.yml
actions/checkout v4
actions/setup-java v4.2.2
order-service/.github/workflows/maven-dev.yml
actions/checkout v4
actions/setup-java v4.2.2
order-service/.github/workflows/maven-main.yml
actions/checkout v4
actions/setup-java v4.2.2
payment-service/.github/workflows/maven-dev.yml
actions/checkout v4
actions/setup-java v4.2.2
payment-service/.github/workflows/maven-main.yml
actions/checkout v4
actions/setup-java v4.2.2
api-gateway/pom.xml
org.springframework.boot:spring-boot-starter-parent 3.3.2
org.springdoc:springdoc-openapi-starter-webflux-ui 2.6.0
org.springdoc:springdoc-openapi-starter-common 2.6.0
com.github.wiremock:wiremock-testcontainers-java 1.0-alpha-13
org.springframework.cloud:spring-cloud-dependencies 2023.0.3
org.codehaus.mojo:properties-maven-plugin 1.2.1
com.diffplug.spotless:spotless-maven-plugin 2.43.0
org.jacoco:jacoco-maven-plugin 0.8.12
org.owasp:dependency-check-maven 10.0.3
catalog-service/pom.xml
org.springframework.boot:spring-boot-starter-parent 3.3.2
org.mapstruct:mapstruct 1.6.0
org.springdoc:springdoc-openapi-starter-webflux-ui 2.6.0
org.springframework.cloud:spring-cloud-dependencies 2023.0.3
org.mapstruct:mapstruct-processor 1.6.0
org.codehaus.mojo:properties-maven-plugin 1.2.1
org.apache.maven.plugins:maven-checkstyle-plugin 3.4.0
com.puppycrawl.tools:checkstyle 10.17.0
org.jacoco:jacoco-maven-plugin 0.8.12
org.owasp:dependency-check-maven 10.0.3
com.diffplug.spotless:spotless-maven-plugin 2.43.0
org.sonarsource.scanner.maven:sonar-maven-plugin 4.0.0.4121
config-server/pom.xml
org.springframework.boot:spring-boot-starter-parent 3.3.2
org.springframework.cloud:spring-cloud-dependencies 2023.0.3
org.codehaus.mojo:properties-maven-plugin 1.2.1
org.sonarsource.scanner.maven:sonar-maven-plugin 4.0.0.4121
com.diffplug.spotless:spotless-maven-plugin 2.43.0
gatling-tests/pom.xml
io.gatling.highcharts:gatling-charts-highcharts 3.11.5
com.diffplug.spotless:spotless-maven-plugin 2.43.0
io.gatling:gatling-maven-plugin 4.9.6
inventory-service/pom.xml
org.springframework.boot:spring-boot-starter-parent 3.3.2
org.mapstruct:mapstruct 1.6.0
org.springdoc:springdoc-openapi-starter-webmvc-ui 2.6.0
net.ttddyy.observation:datasource-micrometer-spring-boot 1.0.5
org.instancio:instancio-junit 5.0.1
org.springframework.cloud:spring-cloud-dependencies 2023.0.3
org.testcontainers:testcontainers-jooq-codegen-maven-plugin 0.0.4
org.mapstruct:mapstruct-processor 1.6.0
org.codehaus.mojo:properties-maven-plugin 1.2.1
org.apache.maven.plugins:maven-checkstyle-plugin 3.4.0
com.puppycrawl.tools:checkstyle 10.17.0
org.jacoco:jacoco-maven-plugin 0.8.12
org.owasp:dependency-check-maven 10.0.3
org.sonarsource.scanner.maven:sonar-maven-plugin 4.0.0.4121
com.diffplug.spotless:spotless-maven-plugin 2.43.0
order-service/pom.xml
org.springframework.boot:spring-boot-starter-parent 3.3.2
net.datafaker:datafaker 2.3.1
org.jobrunr:jobrunr-spring-boot-3-starter 7.2.3
net.ttddyy.observation:datasource-micrometer-spring-boot 1.0.5
org.springdoc:springdoc-openapi-starter-webmvc-ui 2.6.0
org.mapstruct:mapstruct 1.6.0
org.mock-server:mockserver-netty 5.15.0
org.springframework.cloud:spring-cloud-dependencies 2023.0.3
org.mapstruct:mapstruct-processor 1.6.0
org.codehaus.mojo:properties-maven-plugin 1.2.1
org.apache.maven.plugins:maven-checkstyle-plugin 3.4.0
com.puppycrawl.tools:checkstyle 10.17.0
org.jacoco:jacoco-maven-plugin 0.8.12
org.owasp:dependency-check-maven 10.0.3
org.sonarsource.scanner.maven:sonar-maven-plugin 4.0.0.4121
com.diffplug.spotless:spotless-maven-plugin 2.43.0
payment-service/pom.xml
org.springframework.boot:spring-boot-starter-parent 3.3.2
org.zalando:problem-spring-web-starter 0.29.1
net.ttddyy.observation:datasource-micrometer-spring-boot 1.0.5
org.springdoc:springdoc-openapi-starter-webmvc-ui 2.6.0
net.datafaker:datafaker 2.3.1
org.springframework.cloud:spring-cloud-dependencies 2023.0.3
org.testcontainers:testcontainers-jooq-codegen-maven-plugin 0.0.4
org.codehaus.mojo:properties-maven-plugin 1.2.1
com.diffplug.spotless:spotless-maven-plugin 2.43.0
org.jacoco:jacoco-maven-plugin 0.8.12
org.owasp:dependency-check-maven 10.0.3
org.sonarsource.scanner.maven:sonar-maven-plugin 4.0.0.4121
pom.xml
retail-store-webapp/pom.xml
org.springframework.boot:spring-boot-starter-parent 3.3.2
org.webjars:bootstrap 5.3.3
org.webjars:jquery 3.7.1
org.webjars:font-awesome 6.5.2
org.webjars.npm:alpinejs 3.14.1
com.diffplug.spotless:spotless-maven-plugin 2.43.0
service-registry/pom.xml
org.springframework.boot:spring-boot-starter-parent 3.3.2
org.springframework.cloud:spring-cloud-dependencies 2023.0.3
org.codehaus.mojo:properties-maven-plugin 1.2.1
org.sonarsource.scanner.maven:sonar-maven-plugin 4.0.0.4121
com.diffplug.spotless:spotless-maven-plugin 2.43.0
.mvn/wrapper/maven-wrapper.properties
maven 3.9.9
api-gateway/.mvn/wrapper/maven-wrapper.properties
maven 3.9.9
catalog-service/.mvn/wrapper/maven-wrapper.properties
maven 3.9.9
config-server/.mvn/wrapper/maven-wrapper.properties
maven 3.9.9
gatling-tests/.mvn/wrapper/maven-wrapper.properties
maven 3.9.9
inventory-service/.mvn/wrapper/maven-wrapper.properties
maven 3.9.9
order-service/.mvn/wrapper/maven-wrapper.properties
maven 3.9.9
payment-service/.mvn/wrapper/maven-wrapper.properties
maven 3.9.9
retail-store-webapp/.mvn/wrapper/maven-wrapper.properties
maven 3.9.9
service-registry/.mvn/wrapper/maven-wrapper.properties
maven 3.9.9
Currently for creating a new Order we use below code,
public record OrderRequest(
@Positive(message = "CustomerId should be positive") Long customerId,
@NotEmpty(message = "Order without items not valid") List<OrderItemRequest> items) {}
we have validation set up at the Order (parent) level. However, we need to extend this validation to the OrderItem level (child) to ensure that all key attributes are properly validated.
Specifically, we need to enforce the following validation rules for OrderItemRequest:
To implement this enhancement, the following tasks need to be completed:
OrderItemRequest.java
: Add validation logic to the OrderItemRequest class to enforce the above-mentioned rules.OrderControllerIT.java
class to demonstrate that the extended validation at the child level is functioning correctly. This test case should cover various scenarios to ensure thorough testing.Convert all DTOs to Java 17 Record, this eliminates maintenance issue
As Catalog service is using webflux we should move from blocking kafka to non blocking kafka when sending message to productTopic
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.