cfe-rates-microservice
Qué es
El microservicio que administra las tarifas eléctricas de CFE: las almacena, calcula estimaciones de facturación por centro de carga a partir de archivos de demanda, exporta resultados a Excel e intercambia información con el bot que extrae las tarifas del portal de CFE.
Tipo de sistema
| Campo | Valor |
|---|---|
| Tipo | Sistema web + API |
| Lenguaje y framework | PHP 8.5 · Laravel 13 |
| Autenticación | Laravel Breeze / Sanctum |
| Base de datos | MySQL propia, más bases externas por propietario |
| Colas | AWS SQS (tres colas) |
| Ejecución | Servidor, con worker de cola |
| Despliegue | Deployer + GitHub Actions |
Estado documental
- Estado: Borrador
- Última actualización: 2026-08-02
- Owner: Pendiente
- SME requerido: desarrollo
- Fuente resumida: código, configuración de colas y documentación del repositorio.
Qué hace
- Almacena tarifas de CFE indexadas por año, mes, división, tipo y concepto.
- Procesa archivos CSV de tarifas: calcula la tarifa compuesta por división y tipo y publica trabajos de almacenamiento.
- Calcula tarifas para archivos de demanda cargados (horaria o de 5 minutos) y devuelve estimaciones de facturación.
- Exporta los resultados a Excel.
- Solicita tarifas al bot externo y consume sus respuestas.
- Lee datos de centros de carga y consumo desde bases externas por propietario.
- Sirve pantallas autenticadas y una API versionada.
Arquitectura
Estructura por dominios en src/:
| Namespace | Responsabilidad |
|---|---|
App | Capa Laravel: controladores, trabajos, comandos, proveedores, middleware. |
Domain | Lógica de negocio: tarifas, cálculos, centros de carga, exportaciones. |
Support | Infraestructura, incluida la pasarela hacia SQS. |
Rutas web para la interfaz y rutas de API montadas bajo una versión.
Las tres colas
Es el punto que más confunde al diagnosticar. El servicio envía y recibe por colas distintas:
| Cola | Dirección | Contenido |
|---|---|---|
| Solicitudes | Salida | Peticiones de consulta de tarifas dirigidas al bot, una por región. |
| Almacenamiento | Ambas | Trabajos de guardado de tarifas: el servicio los publica y sus propios workers los consumen. |
| Respuestas | Entrada | Tarifas que devuelve el bot tras consultar el portal de CFE. |
text
cfe-rates-microservice ──solicitudes──► cfe-rates-scraper
▲ │
└────────────respuestas◄─────────────┘
cfe-rates-microservice ──almacenamiento──► sus propios workersCada dirección tiene su propio worker. Si el worker de respuestas está caído, el bot puede estar funcionando perfectamente y aun así las tarifas nunca aparecen.
Relación con otros sistemas
| Sistema | Relación |
|---|---|
cfe-rates-scraper | El bot que consulta el portal de CFE. |
sy-energy | Consume las tarifas de CFE por centro de carga. |
| Bases externas por propietario | Origen de datos de centros de carga y consumo. |
Riesgos y gaps
- No está documentado el contrato de la API versionada.
- No está documentado el esquema de accesos por participante.
- El código del bot vive fuera de este repositorio; el diagnóstico de punta a punta requiere ambos.
- No está documentado el comportamiento cuando una respuesta del bot llega tarde o duplicada.
Próxima revisión
Al documentar el contrato de la API.