/microservices-starter-java

Microservices Starter Project - Spring Boot, Java 11, Log4j2, TestContainer, JUnit5, Code Coverage, Checkstyle, Kotlin DSL, Postgres, Vault Secrets, Gatling Load Testing, Sonar

Primary LanguageJavaApache License 2.0Apache-2.0

microservices-starter-java

Microservices Starter Project with Reactive, Reactive DB Driver, Gradle Kotlin DSL, Checkstyle, Coverage, SonarQube, gRPC, EnvoyProxy and Grafana dashboards

Build Code Coverage CII Best Practices Maintainability Known Vulnerabilities

Development

Developer Guide

logging

log4j2

code analysis

sonar

testing

junit 5

code-coverage

Jacoco

code-style

Google Checkstyle modified to be compatible with 8.30. Method Length, File Length, Cyclomatic Complexity have been added.

load-testing

Gatling

Load test can be run using one of the following two approaches

gradle load-testing:runTest
IDE - com.github.starter.todo.Runner

vulnerability

Install snyk and authenticate for CLI session

npm install -g snyk
snyk auth

Publish results using

snyk monitor --all-sub-projects

grpc

Grpc server for Todo runs on port 8100. Rest Endpoint /todo/ can be made to forward to gRPC using use.grpc The forwarding of REST request to gRPC is done for illustration purpose.

build docker

A jar for each web engines is packed into the generated docker image. Pass environment variable ENGINE to activate one.

#build
./scripts/pack/builder.sh

#run
docker run -e ENGINE=reactor-netty --cpus 1.0 -m 756m -p 8080:8080 -it starter-java:latest
docker run -e ENGINE=undertow --cpus 1.0 -m 756m -p 8080:8080 -it starter-java:latest