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