spc--promotion--be
Overview
- Namespace:
spc--promotion--be - Purpose: Sapoche Promotion Management Backend - PRODUCTION
- Age: ~389 days (since November 2023)
- Status: Active - Promotion campaigns and discount management
- Workloads: 3 deployments (all active)
- Environment: PRODUCTION - Promotion and discount engine
Architecture
Promotion management system handling campaigns, discounts, and POS integration:
- Main Application: REST API backend (2 replicas) - Good HA
- Event Consumer: POS order event consumer (1 replica)
- Worker: Batch publisher worker (1 replica)
Auto-Scaling Configuration
No Auto-Scaling Configured:
- No HorizontalPodAutoscalers (HPAs)
- No KEDA scaled objects
- Fixed replica counts
Workload Categories
Main Application (1 deployment with good HA)
| Name | Replicas | Status | Purpose |
|---|---|---|---|
| spc--promotion--be--app--prod | 2/2 | Running | Promotion API - Good HA |
Event Consumer (1 deployment)
| Name | Replicas | Status | Purpose |
|---|---|---|---|
| consumer-pos-order-event | 1/1 | Running | POS order promotion events |
Workers (1 deployment)
| Name | Replicas | Status | Purpose |
|---|---|---|---|
| wrk--batch-publisher | 1/1 | Running | Batch promotion publisher |
Services
| Name | Type | Cluster IP | Ports | NodePort | Purpose |
|---|---|---|---|---|---|
| spc--promotion--be--app--prod | NodePort | 10.8.21.206 | 80 | 32276 | Promotion management API |
Access & Management
View all resources:
kubectl get all -n spc--promotion--be
Check main application:
# View app pods (2 replicas)
kubectl get pods -n spc--promotion--be | grep "app--prod"
# View logs from all replicas
kubectl logs -f deployment/spc--promotion--be--app--prod -n spc--promotion--be
Check consumer and worker:
# POS order consumer
kubectl logs -f deployment/spc--promotion--be--consumer-pos-order-event--prod -n spc--promotion--be
# Batch publisher worker
kubectl logs -f deployment/spc--promotion--be--wrk--batch-publisher--prod -n spc--promotion--be
Restart services:
# Restart main app
kubectl rollout restart deployment/spc--promotion--be--app--prod -n spc--promotion--be
# Restart consumer
kubectl rollout restart deployment/spc--promotion--be--consumer-pos-order-event--prod -n spc--promotion--be
# Restart worker
kubectl rollout restart deployment/spc--promotion--be--wrk--batch-publisher--prod -n spc--promotion--be
# Restart all
kubectl rollout restart deployment --all -n spc--promotion--be
Monitoring
Resource usage:
kubectl top pods -n spc--promotion--be --sort-by=memory
kubectl top pods -n spc--promotion--be --sort-by=cpu
Events:
kubectl get events -n spc--promotion--be --sort-by='.lastTimestamp' | head -20
Data Flow
Promotion Management Request
↓
spc--promotion--be--app--prod (NodePort 32276)
↓
Promotion Management API (2 replicas)
↓
Database (external)
↓
Events Published to Message Queue
├─ POS Order Events → consumer-pos-order-event
└─ Batch Publishing → wrk--batch-publisher
↓
Promotion campaigns and discounts applied
Promotion Management Workflow
1. Promotion Management API (Good HA)
- 2 replicas provide good redundancy
- Promotion campaign management
- Discount configuration
- Promotion rules engine
- Coupon code management
- Campaign scheduling
- Promotion eligibility checks
2. POS Order Event Consumer
consumer-pos-order-eventprocesses POS order promotions- Apply promotions to orders
- Discount calculations
- Coupon validation
- Promotion usage tracking
- Real-time promotion application
3. Batch Publisher Worker
wrk--batch-publisherhandles batch promotion publishing- Batch discount updates
- Bulk promotion campaigns
- Scheduled promotion activations
- Mass coupon generation
- Promotion report generation
Production Considerations
High Availability
Good Main API Configuration:
- Main API: 2 replicas (good HA)
- Very active development (3 days 2 hours ago)
- Age: ~389 days (~1 year, mature)
Single Points of Failure:
- POS order consumer: 1 replica (critical for order discounts)
- Batch publisher: 1 replica (less critical, batch operations)
Recommendations
-
Maintain Current HA:
- Main API: 2 replicas (good)
- Well-established (~1 year in production)
- Very active updates (3d2h ago)
-
Consumer Resilience:
- consumer-pos-order-event: 1 replica (consider 2+ for promotion reliability)
- Critical for order-time discounts and promotions
- Consider HPA or KEDA for order volume spikes
-
Worker Resilience (Optional):
- wrk--batch-publisher: 1 replica (acceptable for batch operations)
- Less critical than real-time consumer
- Could scale to 2 for large campaigns
-
Consider Auto-Scaling:
- Main API: Add HPA (2-5 replicas based on traffic)
- POS consumer: Consider KEDA for order event queue
- Especially during high-volume promotion periods
-
Recent Activity:
- Very active: Updated 3 days 2 hours ago
- Frequent updates (multiple in past month)
- Active promotion development
-
Monitoring Priorities:
- Promotion application success rate
- POS order consumer lag
- Discount calculation accuracy
- Coupon validation performance
- Campaign activation timing
Troubleshooting
Main API issues:
# Check both API pods
kubectl get pods -n spc--promotion--be | grep "app--prod"
# Check logs from all replicas
kubectl logs deployment/spc--promotion--be--app--prod -n spc--promotion--be --all-containers=true --tail=100
# Test API endpoint
kubectl port-forward -n spc--promotion--be service/spc--promotion--be--app--prod 8080:80
POS order consumer issues:
# Check consumer
kubectl logs -f deployment/spc--promotion--be--consumer-pos-order-event--prod -n spc--promotion--be
# Check for promotion errors
kubectl logs deployment/spc--promotion--be--consumer-pos-order-event--prod -n spc--promotion--be --tail=100 | grep -i "error\|promotion\|discount\|fail"
# Restart consumer
kubectl rollout restart deployment/spc--promotion--be--consumer-pos-order-event--prod -n spc--promotion--be
Batch publisher issues:
# Check batch publisher
kubectl logs -f deployment/spc--promotion--be--wrk--batch-publisher--prod -n spc--promotion--be
# Check for publishing errors
kubectl logs deployment/spc--promotion--be--wrk--batch-publisher--prod -n spc--promotion--be --tail=100 | grep -i "error\|batch\|publish\|fail"
# Restart worker
kubectl rollout restart deployment/spc--promotion--be--wrk--batch-publisher--prod -n spc--promotion--be
Performance Metrics
Current Scale
- Main API: 2 replicas - Good HA
- POS Consumer: 1 replica (consider increasing)
- Batch Worker: 1 replica (acceptable for batch)
- Total Active Pods: 4 pods
Stability
- Namespace Age: ~389 days (~1 year, mature)
- Recent Update: 3 days 2 hours ago (very active)
- Main API: Fixed 2 replicas (good HA)
- Critical Consumer: POS order consumer at 1 replica (consider increasing)