Low Level Design - ICC CRM
Arquitectura de Producción AWS
VPC: [Pending final network configuration]
Subnets Públicas
[To be defined during setup]
[Multi-AZ deployment]
Subnets Privadas
[To be defined during setup]
[Multi-AZ deployment]
DB
Base de Datos
Servicio:
Amazon RDS PostgreSQL 15.x
Instancia:
db.t3.medium (or higher based on load)
Deployment:
Multi-AZ for high availability
Endpoint:
[Pending cluster provisioning]
Puerto:
5432 (PostgreSQL standard)
Database:
icc_crm_production
Estado: Migration from Supabase
APP
Capa de Aplicación
Frontend:
AWS Amplify (React + TypeScript)
Backend:
Amazon ECS Fargate
Cluster:
[Pending cluster naming]
Tasks:
Min: 2, Max: 10 (Auto Scaling)
Load Balancer:
Application Load Balancer
CDN:
CloudFront Distribution
Estado: Frontend Deployed (PoC)
AUTH
Autenticación & Autorización
Servicio:
AWS Cognito User Pool
Features:
Multi-factor Authentication
Pool ID:
[Generated during deployment]
App Client ID:
[Generated during deployment]
Domain:
[Custom domain to be configured]
Estado: Migration from Supabase Auth
🔗
Integración VICIDIAL
Primary Cluster:
insightcluster1-web1.insightgroup.online
Secondary Cluster:
insightcluster2-web1.insightgroup.online
API Integration:
Non-Agent API & Agent API
Connection Method:
RESTful API calls
Data Sync:
Users, Campaigns, Leads, Dispositions
Estado: External Dependency
S3
Almacenamiento
Servicio:
Amazon S3
Assets Bucket:
[Environment-specific naming]
Uploads Bucket:
[Environment-specific naming]
Encryption:
AES-256 server-side encryption
Lifecycle:
Automated archival policies
Estado: Initial Setup
λ
Procesamiento Serverless
Runtime:
AWS Lambda (Node.js 18.x)
Functions:
File Processing, Data Sync
Triggers:
S3 Events, Schedule-based
VICIDIAL Sync:
Real-time & Batch processing
Error Handling:
DLQ and retry policies
Estado: Initial Setup
🌐
API Management
Gateway:
Application Load Balancer
API Endpoints:
[Domain pending SSL certificate]
Rate Limiting:
Configurable per endpoint
Authentication:
JWT validation via Cognito
CORS:
Configured for web application
Estado: Initial Setup
📊
Observabilidad
Metrics:
Amazon CloudWatch
Logging:
CloudWatch Logs
Tracing:
AWS X-Ray
Dashboards:
Application & Infrastructure metrics
Alerting:
SNS notifications for critical events
Estado: Initial Setup
⚙️
DevOps & CI/CD
Frontend Deploy:
AWS Amplify (Git-based)
Backend Deploy:
AWS CodePipeline + CodeBuild
Container Registry:
Amazon ECR
IaC:
AWS CloudFormation / CDK
Environments:
Dev, Staging, Production
Estado: Initial Setup
Especificaciones Técnicas - Low Level Design
🔒 Seguridad
• AWS Secrets Manager para credenciales
• Cifrado en tránsito (TLS 1.3)
• Cifrado en reposo (AES-256)
• VPC aislada sin acceso público directo a RDS
• Security Groups configurados por capa
• IAM roles con principio de menor privilegio
• AWS WAF para protección de aplicación web
💾 Backup & Disaster Recovery
• RDS Automated Backups: 7 días de retención
• Point-in-time Recovery habilitado
• Snapshots diarios automatizados
• Multi-AZ deployment para alta disponibilidad
• S3 Cross-Region Replication para assets críticos
• RTO objetivo: < 4 horas
• RPO objetivo: < 1 hora
🌐 Networking
• VPC: [CIDR range to be defined during setup]
• Subnets: Multi-AZ en 2 zonas de disponibilidad
• Public Subnets: Para Load Balancers
• Private Subnets: Para aplicaciones
• Database Subnets: Para RDS instances
• NAT Gateways: Para acceso saliente desde private subnets
• Route 53: Para DNS management
⚡ Performance & Scalability
• ECS Fargate: Auto Scaling basado en CPU/memoria
• Application Load Balancer con health checks
• CloudFront CDN para assets estáticos
• RDS Multi-AZ para performance y disponibilidad
• ElastiCache Redis para caching (opcional)
• Lambda concurrent execution limits
• CloudWatch custom metrics para monitoreo
🔗 Integración VICIDIAL
• Primary Cluster: insightcluster1-web1.insightgroup.online
• Secondary Cluster: insightcluster2-web1.insightgroup.online
• API Methods: Non-Agent API & Agent API
• Connection: HTTPS RESTful calls
• Data Sync: Real-time y batch processing
• Error Handling: Retry logic con exponential backoff
• Rate Limiting: Configurable per cluster
🛠️ Stack Tecnológico
• Frontend: React 18+ con TypeScript
• UI Framework: Tailwind CSS + Headless UI
• State Management: React Query + Context API
• Backend: Node.js con Express framework
• Database: PostgreSQL 15.x en Amazon RDS
• Authentication: AWS Cognito con JWT
• File Processing: AWS Lambda para CSV/Excel
• Container Runtime: Docker en ECS Fargate
📊 Monitoreo & Observabilidad
• CloudWatch: Métricas de aplicación e infraestructura
• X-Ray: Distributed tracing para troubleshooting
• CloudWatch Logs: Centralized logging
• SNS: Alertas para eventos críticos
• Custom Dashboards: Business metrics específicos
• Health Checks: Application y database monitoring
• Cost Monitoring: AWS Cost Explorer integration
🚀 DevOps & CI/CD
• Source Control: Git-based con branching strategy
• Frontend: AWS Amplify para automatic deployments
• Backend: CodePipeline + CodeBuild + ECR
• Infrastructure: CloudFormation o CDK templates
• Environments: Development, Staging, Production
• Testing: Automated unit & integration tests
• Rollback: Blue/Green deployment capability
Diagrama de Arquitectura - Flujo de Componentes
Servicios AWS
Aplicación & Frontend
Base de Datos
Almacenamiento
Servicios Especializados
Autenticación
Procesamiento
Monitoreo
Externos & Seguridad
VICIDIAL External
Gestión de Secretos
Usuarios Finales