A basic template repo that contains starter code for developing a microservice.
Built in Java.
- README
- .gitignore
- Dependency Management (Maven)
- Dependency Injection and Application Mgmt (Spring Boot & Starters)
- Front Controller pattern
- Service Layer pattern
- Repository pattern
- Event Publisher
- Event Subscriber
- HTTP Client
- Unit Testing for Services (JUnit)
- Provider Contract Testing the Controller (PACT)
- Consumer Contract Testing the HTTP Client (PACT)
- Automated publishing of Contract Testing Contracts and Results (PACT Broker, GitHub Actions)
- Integration Testing the Repository (in-memory DB)
- Integration Testing the Event Publisher (Testcontainers)
- Integration Testing the Event Subscriber (Testcontainers)
- Logging Config (Slf4j & Logback)
- HTTP Client Config
- Test & Package Automation (Maven, GitHub Actions)
- Packaging into a Container (Jib, Maven)
- Pushing Container to Registry (Jib, Maven, GitHub Actions)
- Kubernetes resources (Kustomize)
- Terraform Database (Google)
- Terraform Pub/Sub (Google)
- Deployment of Terraform (GitHub Actions)
- Create Spans for Tracing (OpenTelemetry)
- Create Domain-logic Metrics (Micrometer)
- Auto-updates (Renovate)