EasyBooking
I put service discovery config and packaging firstA scalable system is set up before feature fun starts
problem
The challenge: keeping a distributed hotel booking platform clean as it scales multiple services and features
I use configs and tools that prevent future headaches and broken builds
- API gateway for smooth routing of users and reservations
- Used Helm with Kubernetes for organized deploys
- Live monitoring with Prometheus Grafana logs
- CI for every service keeps code healthy
pipeline
decisions
Package Kubernetes releases with Helm rather than hand-crafted YAML one at a time.
tradeoffMore templating complexity per chart.
outcomeEvery microservice release is reproducible from one chart rather than drifted manifests.
Centralize OAuth and config in their own services.
tradeoffTwo extra deploy units plus a runtime dependency between gateway identity.
outcomeA new microservice doesn't reimplement auth or config. Its responsibility stays its service domain.
Measure each service's Sonar quality gate in CI.
tradeoffSlower CI on every commit.
outcomeCoverage and code-smell regressions are blocked before merging, not detected in code review.
results
- services
- 6
- gateway, OAuth, user, room, reservation, config server
- runtime
- Compose
- full stack, one command
- packaging
- K8s + Helm
- GitHub Actions, Sonar gate
stack
Backend
- Spring Boot
- Java
- OAuth 2
- Config Server
Orchestration
- Kubernetes
- Helm
- nginx
Operations
- Docker
- Prometheus
- Grafana
- Grafana Loki
Delivery
- GitHub Actions
- SonarQube