Requerimientos - santig005/Distributed-Systems-gRPC GitHub Wiki

Requirimientos funcionales

ID Descripción Componente(s) Asociado(s)
RF-01 El cliente debe enviar peticiones HTTP REST al API Gateway (ej: crear usuario). Cliente, API Gateway
RF-02 El API Gateway debe enrutar peticiones REST a los microservicios correspondientes. API Gateway
RF-03 Los microservicios deben comunicarse entre sí mediante gRPC. Microservicios
RF-04 El MOM debe almacenar mensajes en cola si un microservicio está caído. MOM
RF-05 Los microservicios deben recuperar y procesar mensajes pendientes tras una caída. Microservicios, MOM
RF-06 El sistema debe permitir operaciones CRUD en las entidades (usuarios, productos). Microservicios

Requermientos no funcionales

ID Categoría Descripción Métrica/Estándar
RNF-01 Escalabilidad Escalar horizontalmente el API Gateway y microservicios bajo alta carga. Uso de Docker/Kubernetes.
RNF-02 Rendimiento Respuesta de peticiones REST en <500 ms con 1000 solicitudes/segundo. Pruebas con JMeter/K6.
RNF-03 Disponibilidad El MOM debe tener una disponibilidad del 99.9%. RabbitMQ en clúster con réplicas.
RNF-04 Seguridad Comunicaciones cifradas con HTTPS/TLS. Certificados SSL (Let’s Encrypt).
RNF-05 Tolerancia a Fallos Recuperación automática de microservicios sin pérdida de mensajes. Colas duraderas y ACKs en RabbitMQ.
RNF-06 Observabilidad Monitoreo de métricas y logs en tiempo real. Prometheus + Grafana, ELK Stack.
RNF-07 Mantenibilidad Código modular y documentado con cobertura de pruebas >80%. Pruebas unitarias (Go/Java).
RNF-08 Eficiencia Procesar 10,000 mensajes/minuto en el MOM. Configuración de concurrencia en RabbitMQ.
RNF-09 Despliegue Despliegue en AWS usando infraestructura como código. Terraform/CloudFormation.