rfd--doctor-kyc
Overview
- Namespace:
rfd--doctor-kyc - Purpose: Referring Doctor KYC (Know Your Customer) Backend - PRODUCTION
- Age: ~2 years 243 days (since March 2023)
- Status: Active - Doctor verification and onboarding
- Workloads: 4 deployments (all active)
- Environment: PRODUCTION - Doctor identity verification
Architecture
Doctor KYC system handling doctor verification, customer events, and OTP sending:
- Main Application: REST API backend (1 replica)
- Event Consumers: Customer events, KYC event processing, OTP sending (3 deployments)
Auto-Scaling Configuration
No Auto-Scaling Configured:
- No HorizontalPodAutoscalers (HPAs)
- No KEDA scaled objects
- Fixed replica counts (all at 1 replica)
Workload Categories
Main Application (1 deployment)
| Name | Replicas | Status | Purpose |
|---|---|---|---|
| rfd--doctor-kyc--be--app--prod | 1/1 | Running | Main doctor KYC API |
Event Consumers (3 deployments)
| Name | Replicas | Status | Purpose |
|---|---|---|---|
| consumer-customer | 1/1 | Running | Customer/doctor event processing |
| consumer-event-kyc | 1/1 | Running | KYC verification events |
| consumer-send-otp | 1/1 | Running | OTP generation and sending |
Services
| Name | Type | Cluster IP | Ports | NodePort | Purpose |
|---|---|---|---|---|---|
| rfd--doctor-kyc--be--app--prod | NodePort | 10.8.20.43 | 80 | 31022 | Main doctor KYC API |
Access & Management
View all resources:
kubectl get all -n rfd--doctor-kyc
Check main application:
kubectl get pods -n rfd--doctor-kyc | grep "app--prod"
kubectl logs -f deployment/rfd--doctor-kyc--be--app--prod -n rfd--doctor-kyc
Check consumers:
# All consumers
kubectl get pods -n rfd--doctor-kyc | grep consumer
# KYC event consumer
kubectl logs -f deployment/rfd--doctor-kyc--be--consumer-event-kyc--prod -n rfd--doctor-kyc
# Customer consumer
kubectl logs -f deployment/rfd--doctor-kyc--be--consumer-customer--prod -n rfd--doctor-kyc
# OTP consumer
kubectl logs -f deployment/rfd--doctor-kyc--be--consumer-send-otp--prod -n rfd--doctor-kyc
Restart services:
# Restart main app
kubectl rollout restart deployment/rfd--doctor-kyc--be--app--prod -n rfd--doctor-kyc
# Restart all consumers
kubectl get deployments -n rfd--doctor-kyc | grep consumer | awk '{print $1}' | xargs -I {} kubectl rollout restart deployment/{} -n rfd--doctor-kyc
Monitoring
Resource usage:
kubectl top pods -n rfd--doctor-kyc --sort-by=memory
kubectl top pods -n rfd--doctor-kyc --sort-by=cpu
Events:
kubectl get events -n rfd--doctor-kyc --sort-by='.lastTimestamp' | head -20
Data Flow
Doctor KYC Request
↓
rfd--doctor-kyc--be--app--prod (NodePort 31022)
↓
Main Doctor KYC API
↓
Database (external)
↓
Events Published to Message Queue
↓
Consumers Process Events
├─ KYC Verification → consumer-event-kyc
├─ Customer/Doctor → consumer-customer
└─ OTP Sending → consumer-send-otp
↓
Doctor verification, OTP delivery
Doctor KYC Workflow
1. Doctor KYC API
- Doctor registration and onboarding
- Identity verification
- License verification
- Document upload and validation
- KYC status tracking
- Compliance management
2. KYC Event Processing
consumer-event-kycprocesses verification events- Document verification workflows
- Approval/rejection processing
- Status updates
- Integration with verification services
3. Customer Event Processing
consumer-customerhandles doctor/customer events- Profile updates
- Account status changes
- Data synchronization
4. OTP Processing
consumer-send-otphandles OTP generation and delivery- SMS/Email OTP sending
- Verification code management
- Multi-factor authentication support
Production Considerations
High Availability
x Single Points of Failure:
- Main API: 1 replica (no HA)
- All consumers: 1 replica each
- No redundancy for critical KYC operations
Recommendations
-
Main API Resilience:
- Currently 1 replica (single point of failure)
- Increase to 2+ replicas or add HPA
- Critical for doctor onboarding
-
Add Auto-Scaling:
- Consider HPA for main API
- Add KEDA for consumers based on queue depth
- Scale during high registration periods
-
Consumer Resilience:
- All consumers at 1 replica
- Consider 2 replicas for:
- consumer-event-kyc (critical for verification)
- consumer-send-otp (critical for authentication)
-
Recent Updates:
- Very recent deployment: 9 days ago
- Frequent updates (multiple in past month)
- Monitor stability after recent changes
-
Monitoring Priorities:
- API response times
- KYC verification processing rates
- OTP delivery success rates
- Document processing status
- Consumer lag monitoring
Troubleshooting
Main API issues:
# Check API pod
kubectl get pods -n rfd--doctor-kyc | grep "app--prod"
# Check logs
kubectl logs -f deployment/rfd--doctor-kyc--be--app--prod -n rfd--doctor-kyc --tail=100
# Test API endpoint
kubectl port-forward -n rfd--doctor-kyc service/rfd--doctor-kyc--be--app--prod 8080:80
# Access http://localhost:8080
KYC verification issues:
# Check KYC consumer
kubectl logs -f deployment/rfd--doctor-kyc--be--consumer-event-kyc--prod -n rfd--doctor-kyc
# Check for verification errors
kubectl logs deployment/rfd--doctor-kyc--be--consumer-event-kyc--prod -n rfd--doctor-kyc --tail=100 | grep -i "error\|kyc\|verif\|fail"
# Restart consumer
kubectl rollout restart deployment/rfd--doctor-kyc--be--consumer-event-kyc--prod -n rfd--doctor-kyc
OTP delivery issues:
# Check OTP consumer
kubectl logs -f deployment/rfd--doctor-kyc--be--consumer-send-otp--prod -n rfd--doctor-kyc
# Check for OTP errors
kubectl logs deployment/rfd--doctor-kyc--be--consumer-send-otp--prod -n rfd--doctor-kyc --tail=100 | grep -i "error\|otp\|sms\|fail"
# Restart consumer
kubectl rollout restart deployment/rfd--doctor-kyc--be--consumer-send-otp--prod -n rfd--doctor-kyc
Customer event issues:
# Check customer consumer
kubectl logs -f deployment/rfd--doctor-kyc--be--consumer-customer--prod -n rfd--doctor-kyc
# Check for errors
kubectl logs deployment/rfd--doctor-kyc--be--consumer-customer--prod -n rfd--doctor-kyc --tail=100 | grep -i "error\|customer\|fail"
# Restart consumer
kubectl rollout restart deployment/rfd--doctor-kyc--be--consumer-customer--prod -n rfd--doctor-kyc
Performance Metrics
Current Scale
- Main API: 1 replica (no HA)
- Consumers: 3 consumers at 1 replica each
- Total Active Pods: ~4 pods
Stability
- Namespace Age: ~2 years (mature)
- Recent Updates: 9 days ago (very active development)
- All Single Replicas: No redundancy configured