Modern e-commerce platform with microservices architecture built on Quarkus.
- Gateway (8080) - API Gateway with authentication
- User Service (8081) - User and role management
- Catalog Service (8082) - Product catalog and categories
- Order Service (8083) - Order management
- Payment Service (8084) - Payment processing
- Inventory Service (8085) - Inventory management
- Analytics Service (8086) - Analytics and reporting
- Content Service (8087) - Content management
- Notification Service (8088) - Notifications and email
- Search Service (8089) - Product search
- Customer App (3001) - Customer interface
- Admin App (3002) - Administrative interface
- PostgreSQL - Main database
- MongoDB - Content and files
- ClickHouse - Analytics database
- Redis - Cache and message queues
- Elasticsearch - Search and indexing
- Keycloak - Authentication and authorization
- Consul - Service Discovery
- Prometheus + Grafana - Monitoring
- Jaeger - Distributed Tracing
- Docker & Docker Compose
- Java 21
- Make (optional)
# Using Makefile
make up
# Or directly
docker-compose up -d
# 1. Start databases
make db-up
# 2. Start Keycloak and Consul
make keycloak
make consul
# 3. Start monitoring
make monitor
# 4. Start all services
make up
# Status of all services
make status
# Health check
make health
# Logs
make logs
- 📚 Complete Documentation - Full project documentation
- ⚙️ Setup Guide - Detailed setup instructions
- 🔌 Port Mapping - Service ports and endpoints
- 🔄 Scripts - Utility scripts documentation
make help # Help
make build # Build all services
make up # Start
make down # Stop
make restart # Restart
make logs # Logs
make clean # Full cleanup
make db-up # Databases only
make monitor # Monitoring only
make keycloak # Keycloak only
make consul # Consul only
make backup # Backup
# Check all services health
./scripts/check-services.sh
# Verify .gitignore configuration
./scripts/check-gitignore.sh
# Update all .gitignore files
./scripts/update-gitignore.sh
# Initialize multiple databases
./scripts/init-multiple-databases.sh
📚 Scripts Documentation: scripts/README.md
Service | URL | Description |
---|---|---|
Gateway | http://localhost:8080 | API Gateway |
Customer App | http://localhost:3001 | Customer interface |
Admin App | http://localhost:3002 | Administrative interface |
Keycloak | http://localhost:8080 | Authentication |
Consul | http://localhost:8500 | Service Discovery |
Prometheus | http://localhost:9090 | Metrics |
Grafana | http://localhost:3000 | Visualization (admin/admin) |
Jaeger | http://localhost:16686 | Tracing |
- Java version: Unified to Java 21
- Docker Compose: Created single file for all services
- Configuration: Added all necessary environment variables
- Monitoring: Configured Prometheus and Grafana
- Microservices: Need to generate code from JDL files
- Build files: Create build.gradle for each microservice
- Dockerfile: Create Dockerfile for each service
# Generate from main JDL
jhipster jdl microservices-quarkus.jdl
# Or from alternative
jhipster jdl microservices.jdl
├── gateway/ # API Gateway
├── user_service/ # User Management
├── catalog_service/ # Product Catalog
├── order_service/ # Order Management
├── payment_service/ # Payment Processing
├── inventory_service/ # Inventory Management
├── analytics_service/ # Analytics & Reporting
├── content_service/ # Content Management
├── notification_service/ # Notifications
└── search_service/ # Search Engine
- CPU and memory usage
- HTTP requests and responses
- Database connections
- Custom business metrics
- System overview
- Service performance
- Business metrics
- Error rates
- Request flows
- Service dependencies
- Performance bottlenecks
- Error investigation
- OAuth2/OIDC protocol
- Role-based access control
- Multi-tenant support
- Social login integration
- Service-to-service authentication
- API rate limiting
- CORS configuration
- SSL/TLS encryption
# Apply Istio configuration
kubectl apply -f istio-config.yaml
# Deploy to Kubernetes
kubectl apply -f k8s/
# Initialize swarm
docker swarm init
# Deploy stack
docker stack deploy -c docker-compose.yml ecommerce
- ELK Stack (Elasticsearch, Logstash, Kibana)
- Fluentd for log collection
- Structured logging (JSON)
- Log levels and filtering
./gradlew test
./gradlew integrationTest
npm run e2e:headless
- 📚 Complete Documentation - Full project documentation and guides
- 🏗️ Architecture Overview - System architecture and design
- 🔧 Technical Decisions - Technology choices and rationale
- 🎨 Frontend Architecture - Frontend design and structure
- 🔌 Port Mapping - Service ports and endpoints
- ⚙️ Setup Guide - Step-by-step installation guide
- 🔒 Gitignore Setup - Gitignore configuration guide
- 🗄️ Database Analysis - NoSQL database analysis
- 🔄 Scripts Reorganization - Scripts management
- 🚀 Quarkus Migration - Migration to Quarkus
- ⚙️ JHipster JDL Options - JHipster configuration options
If you encounter issues:
- Check logs:
make logs
- Check status:
make status
- Check health:
make health
- Clean and restart:
make clean && make up
Note: This project is under development. Some services may require additional configuration.