v4.0.0: Merge pull request #25 from mazenaly256/dev
v4.0.0 — Fully Functional Live Cloud-Native Production Application
Overview
This release transitions the system from a local development setup to a fully functional, fully deployed, cloud-native distributed system with observability.
What's Complete
Cloud Deployment
- All 4 services connected to remote databases instead of local ones (MongoDB Atlas, Neon PostgreSQL)
- Azure VM provisioned for deploying via Docker Compose
- Two Docker Compose files — one for the hosting VM, one for local development
API Gateway Enhancements
- CORS policy centralized at the Gateway level
- OpenAPI documentation for each service accessible through the Gateway
- Request timeout increased to 8 seconds to improve request success rate
Resilience
- Replaced raw
HttpClientwithIHttpClientFactory, that helps in reusing underlying sockets. - Polly retry (2 retries, 250ms/500ms backoff) and circuit breaker (3 failures, 30s open) on Reservation Service → Movie Service calls
Observability
- OpenTelemetry tracing, logging, and collecting metrics across all services
- Trace-log correlation achieved
- Grafana Cloud integration — Tempo (traces), Loki (logs), Prometheus (metrics)
CI Pipeline Enhanced
- 4 path-filtered GitHub Actions workflows, one per service, to avoid CI workflow due to change a file that it is not related to source code of the service.