5.9 KiB
5.9 KiB
Microservices Architecture Deployment Guide
Architecture Overview
Frontend (Next.js) → API Gateway (Express) → Git Integration Service (Node.js)
Port 3001 Port 8000 Port 8012
✅ Changes Applied
1. Frontend Fixes
- ✅ Replaced
fetch()calls withauthApiClientinDiffViewerContext.tsx - ✅ Replaced
fetch()calls withauthApiClientindiff-viewer/page.tsx - ✅ All API calls now go through API Gateway (port 8000) instead of frontend (port 3001)
2. Backend Enhancements
- ✅ Added missing
/api/github/repository/:id/resolve-pathendpoint - ✅ Enhanced path resolution with case-insensitive file matching
- ✅ All existing endpoints remain functional
3. API Gateway Routing
- ✅ Added
/api/diffsroute to API Gateway - ✅ Configured proper proxy forwarding to Git Integration Service
- ✅ Added authentication middleware for diff operations
- ✅ Set appropriate timeouts for diff operations (120 seconds)
🚀 Deployment Steps
1. Start All Services
# Navigate to backend directory
cd /home/tech4biz/Documents/merge/codenuk-backend-live
# Start all services with Docker Compose
docker-compose up -d
# Check service status
docker-compose ps
2. Start Frontend
# Navigate to frontend directory
cd /home/tech4biz/Documents/merge/codenuk-frontend-live
# Install dependencies (if not already done)
npm install
# Start frontend development server
npm run dev
3. Verify Architecture
# Run the architecture test
cd /home/tech4biz/Documents/merge/codenuk-backend-live
node test-microservices-architecture.js
🔍 Service Endpoints
Frontend (Port 3001)
- URL: http://localhost:3001
- Purpose: Next.js React application
- API Calls: All go through API Gateway (port 8000)
API Gateway (Port 8000)
- URL: http://localhost:8000
- Purpose: Single entry point for all backend services
- Routes:
/api/github/*→ Git Integration Service/api/diffs/*→ Git Integration Service/api/vcs/*→ Git Integration Service/api/ai/*→ Git Integration Service
Git Integration Service (Port 8012)
- URL: http://localhost:8012
- Purpose: Handles all Git operations
- Routes:
/api/github/*- GitHub integration/api/diffs/*- Diff viewer operations/api/vcs/*- Multi-provider VCS support/api/ai/*- AI streaming operations
🧪 Testing the Architecture
1. Test Service Health
# Test API Gateway
curl http://localhost:8000/health
# Test Git Integration Service
curl http://localhost:8012/health
# Test Frontend
curl http://localhost:3001
2. Test API Routing
# Test GitHub endpoints through gateway
curl http://localhost:8000/api/github/health
# Test diff endpoints through gateway
curl http://localhost:8000/api/diffs/repositories
# Test direct service call (should work)
curl http://localhost:8012/api/github/health
3. Test Frontend Integration
- Open http://localhost:3001
- Navigate to GitHub repositories page
- Navigate to diff viewer page
- Check browser network tab - all API calls should go to port 8000
🔧 Configuration
Environment Variables
Frontend (.env.local)
NEXT_PUBLIC_API_URL=http://localhost:8000
API Gateway (.env)
GIT_INTEGRATION_URL=http://git-integration:8012
PORT=8000
Git Integration Service (.env)
PORT=8012
DATABASE_URL=postgresql://user:password@postgres:5432/codenuk
🐛 Troubleshooting
Common Issues
1. Frontend calls port 3001 instead of 8000
- Cause: Using
fetch()instead ofauthApiClient - Fix: Replace all
fetch('/api/...')withauthApiClient.get('/api/...')
2. API Gateway returns 502 errors
- Cause: Git Integration Service not running
- Fix: Check
docker-compose psand restart services
3. CORS errors in browser
- Cause: Frontend trying to call different ports
- Fix: Ensure all API calls go through port 8000
4. Authentication errors
- Cause: Missing or invalid JWT tokens
- Fix: Check authentication flow and token refresh
Debug Commands
# Check service logs
docker-compose logs git-integration
docker-compose logs api-gateway
# Check service connectivity
docker-compose exec api-gateway curl http://git-integration:8012/health
# Test specific endpoints
curl -H "Authorization: Bearer <token>" http://localhost:8000/api/github/user/repositories
📊 Monitoring
Service Health Checks
# API Gateway health
curl http://localhost:8000/health
# Git Integration health
curl http://localhost:8012/health
# Frontend health
curl http://localhost:3001
Log Monitoring
# Follow all logs
docker-compose logs -f
# Follow specific service logs
docker-compose logs -f git-integration
docker-compose logs -f api-gateway
🎯 Success Criteria
✅ Frontend (3001) - All API calls go to port 8000
✅ API Gateway (8000) - Routes requests to appropriate services
✅ Git Integration (8012) - Handles all Git operations
✅ Authentication - JWT tokens properly forwarded
✅ Error Handling - Proper error responses and timeouts
✅ CORS - No cross-origin issues
📈 Performance Considerations
- API Gateway: 200 requests/minute limit for diff operations
- Git Integration: 120-second timeout for large operations
- Frontend: 10-second timeout for API calls
- Database: Connection pooling enabled
🔒 Security
- Authentication: JWT tokens required for write operations
- Authorization: User context forwarded to services
- Rate Limiting: Applied at API Gateway level
- CORS: Configured for frontend domain only
✅ Architecture is now properly configured for microservices deployment!