A cloud‑native, Kubernetes‑ready job‑marketplace built with Spring Boot microservices.
TalentHive‑MS is a modular suite of three Spring Boot microservices — Job, Company, and Review — orchestrated through Kubernetes and enriched with observability, resilience, and centralized configuration. The project demonstrates how to build, deploy, and operate production‑grade Java microservices with modern DevOps tooling.
Capability | Implementation |
---|---|
Service Discovery | Eureka Server (Service Registry) |
API Gateway | Spring Cloud Gateway |
Sync Communication | OpenFeign + Load‑balanced RestTemplate |
Centralized Configuration | Spring Cloud Config backed by Git |
Resilience & Fault Tolerance | Resilience4j (Retry, Circuit‑Breaker, RateLimiter) |
Distributed Tracing | Zipkin |
Messaging (optional) | RabbitMQ (decoupled async events) |
Persistence | PostgreSQL (one schema per service) |
Containerization & CI/CD | Docker images → Kubernetes |
graph TD
subgraph Clients
Web[Web SPA]
Mobile[Mobile App]
end
subgraph Cluster
APIGW(API Gateway)
JobSvc(Job Service)
CompanySvc(Company Service)
ReviewSvc(Review Service)
Eureka(Eureka Server)
Config(Config Server)
Zipkin(Zipkin)
Rabbit(RabbitMQ)
end
Web -->|REST| APIGW
Mobile -->|REST| APIGW
APIGW --> JobSvc
APIGW --> CompanySvc
APIGW --> ReviewSvc
JobSvc -->|Feign| CompanySvc
ReviewSvc -->|Feign| CompanySvc
JobSvc --> Eureka
CompanySvc --> Eureka
ReviewSvc --> Eureka
APIGW --> Eureka
JobSvc --> Config
CompanySvc --> Config
ReviewSvc --> Config
APIGW --> Config
JobSvc -- Traces --> Zipkin
CompanySvc -- Traces --> Zipkin
ReviewSvc -- Traces --> Zipkin
JobSvc -- Events --> Rabbit
ReviewSvc -- Events --> Rabbit
- Java 17, Spring Boot 3.x, Spring MVC
- Spring Cloud (Eureka, Gateway, Config, OpenFeign)
- PostgreSQL (per‑service DB)
- Resilience4j for fault handling
- Zipkin for distributed tracing
- RabbitMQ for event‑driven async flows (optional)
- Maven for build automation
- Docker for containerization
- Kubernetes (Helm + Kustomize friendly) for orchestration
Requires Docker ≥ 24 & Docker Compose.
git clone https://github.com/<your‑handle>/TalentHive‑MS.git
cd TalentHive‑MS
# Build all service images
./mvnw clean package -DskipTests
# Spin up entire stack
docker compose -f infra/docker-compose.yaml up --build -d
After a few seconds:
Service | URL |
---|---|
API Gateway | http://localhost:8080/ |
Eureka Dashboard | http://localhost:8761/ |
Zipkin UI | http://localhost:9411/ |
Config Server | http://localhost:8888/ |
RabbitMQ UI | http://localhost:15672/ |
Credentials & ports are configurable via infra/.env
.
All environment‑specific properties live in the Git‑backed config‑repo under config‑repo/
.
Files follow the convention service‑name-<profile>.yml
— eg. jobservice-prod.yml
.
Update values → push → affected services refresh live thanks to Spring Cloud Bus.
./mvnw test # unit + slice tests
./mvnw verify -P it # integration tests with Testcontainers
minikube start # or kind / k3d / your cloud cluster
kubectl apply -k k8s/base # Deploy core infrastructure
kubectl apply -k k8s/overlays/dev # Deploy services (dev profile)
Helm charts are provided in /helm
for production‑grade installs.
Each microservice ships with Springdoc‑OpenAPI — once running, explore:
http://<host>:<port>/swagger-ui.html
Service | Default Port | Purpose |
---|---|---|
Job Service | 8081 | CRUD jobs, search, match by skills |
Company Service | 8082 | Manage companies & hiring statuses |
Review Service | 8083 | Submit & read company reviews |
- JWT‑based stateless auth layer pluggable at the Gateway.
- Profiles:
dev
,test
,prod
— never commit secrets; use K8s Secrets or Vault.
- Fork ➜ Create Branch ➜ Commit ➜ PR
- Please run
./scripts/lint.sh
& all tests before pushing. - Document new endpoints in the OpenAPI spec.
Looking for good first issues? Check the issues tab!
Distributed under the MIT License — see LICENSE
for details.
Developed with ❤️ by Vikas Kumar Gupta 🚀
For any queries or contributions, please reach out:
- 📧 Email: vikasgup074@gmail.com
- 🔗 LinkedIn: Vikas Kumar Gupta
- 💻 GitHub: Vikas9kumargupta