A comprehensive microservices application built with Go, Docker, and Kubernetes.
- Go: Backend services
- Docker: Containerization
- Kubernetes: Container orchestration
- RabbitMQ: Message broker
- PostgreSQL: SQL database
- MongoDB: NoSQL database
- gRPC: Internal service communication
- RESTful API: External communication
This project consists of the following microservices:
- Broker Service: API Gateway that routes requests to appropriate services
- Authentication Service: Handles user authentication
- Logger Service: Centralized logging with MongoDB
- Mail Service: Handles email sending
- Listener Service: Consumes messages from RabbitMQ
- Go 1.21+
- Docker and Docker Compose
- Kubernetes (minikube or Docker Desktop)
- Make
make ./project/up_build# Apply Kubernetes manifests
kubectl apply -f ./project/k8s
# Start minikube
minikube start
# Expose Broker Service
kubectl expose deployment broker-service --type=LoadBalancer --port=8080 --target-port=8080
# To make accessible LoadBalancer
minikube tunnel
# To see minikube dashboard
minikube dashboard
#/authentication-service: User authentication/broker-service: API Gateway/front-end: Web interface/logger-service: Logging service/mail-service: Email service/listener-service: RabbitMQ consumer/k8s: Kubernetes manifests
- User authentication
- Message broker integration
- Centralized logging
- Email sending
- gRPC and REST API communication
MIT