Flujo de Datos
Este documento proporciona diagramas detallados de extremo a extremo para cada camino de ejecución en MIH.
Camino 1: Llamada Directa a la API MIH (Síncrono)
Usado cuando un plugin llama a mih::request() directamente y necesita la respuesta inmediatamente.
Camino 2: Event Bridge (Asíncrono)
Usado cuando un administrador crea una regla mapeando un evento de Moodle a un servicio.
Fase A: Captura del Evento (Síncrono, en la petición del usuario)
Fase B: Despacho del Evento (Asíncrono, en el cron de Moodle)
Camino 3: Consumo de Respuestas AMQP (Programado)
Usado cuando un servicio envía respuestas de vuelta via una cola de RabbitMQ.
Camino 4: Máquina de Estados del Circuit Breaker
Resumen de Escrituras en Base de Datos
| Operación | Tablas Escritas |
|---|---|
| Servicio creado | svc, cb (estado inicial) |
| Petición realizada | log, cb (actualización de estado) |
| Regla de evento coincidente | task_adhoc (cola) |
| Tarea despachada exitosamente | log, cb |
| Tarea fallida (< 5 intentos) | log, cb, task_adhoc (custom_data actualizado) |
| Tarea fallida permanentemente | log, cb, dlq |
| DLQ reenviada | task_adhoc (nueva tarea) |
| Circuito reseteado | cb |
| Log purgado | log (filas antiguas eliminadas) |