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