Skip to main content

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)​

NameReplicasStatusPurpose
rfd--doctor-kyc--be--app--prod1/1RunningMain doctor KYC API

Event Consumers (3 deployments)​

NameReplicasStatusPurpose
consumer-customer1/1RunningCustomer/doctor event processing
consumer-event-kyc1/1RunningKYC verification events
consumer-send-otp1/1RunningOTP generation and sending

Services​

NameTypeCluster IPPortsNodePortPurpose
rfd--doctor-kyc--be--app--prodNodePort10.8.20.438031022Main 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-kyc processes verification events
  • Document verification workflows
  • Approval/rejection processing
  • Status updates
  • Integration with verification services

3. Customer Event Processing​

  • consumer-customer handles doctor/customer events
  • Profile updates
  • Account status changes
  • Data synchronization

4. OTP Processing​

  • consumer-send-otp handles 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​

  1. Main API Resilience:

    • Currently 1 replica (single point of failure)
    • Increase to 2+ replicas or add HPA
    • Critical for doctor onboarding
  2. Add Auto-Scaling:

    • Consider HPA for main API
    • Add KEDA for consumers based on queue depth
    • Scale during high registration periods
  3. Consumer Resilience:

    • All consumers at 1 replica
    • Consider 2 replicas for:
      • consumer-event-kyc (critical for verification)
      • consumer-send-otp (critical for authentication)
  4. Recent Updates:

    • Very recent deployment: 9 days ago
    • Frequent updates (multiple in past month)
    • Monitor stability after recent changes
  5. 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