mem-api
Qué es
La API del Mercado Eléctrico Mayorista: almacena y expone los Precios Marginales Locales de México para el Mercado de Día en Adelanto (MDA) y el Mercado de Tiempo Real (MTR).
Guarda los componentes de precio, energía, pérdidas y congestión de nodos y zonas de carga de los sistemas SIN, BCA y BCS, y los pone a disposición de mem-frontend, de sy-energy y de consumidores externos autorizados.
Tipo de sistema
| Campo | Valor |
|---|---|
| Tipo | API / servicio |
| Lenguaje y framework | PHP 8.5 · Laravel 13 |
| Base de datos | MySQL |
| Colas | AWS SQS |
| Ejecución | Servidor, con worker de cola y scheduler |
| Despliegue | Deployer + GitHub Actions (desarrollo, producción y rollback) |
Estado documental
- Estado: Borrador
- Última actualización: 2026-08-02
- Owner: Pendiente
- SME requerido: desarrollo
- Fuente resumida: comandos, scheduler y notas de arquitectura del repositorio.
Su lugar en la cadena
Portal CENACE
│ mem-sync-prices (Lambda)
▼
S3 (CSV crudos)
│ mem-parse-csv-prices (Lambda)
▼
SQS (un mensaje por nodo)
│
▼
mem-api ──► base de datos ──► mem-frontend
└─► sy-energymem-api es el punto donde los datos crudos del mercado se vuelven consultables.
Arquitectura
Estilo de controlador delgado con acciones y constructores de consulta:
ruta → form request (valida) → controlador → acción de dominio → respuestaEl código de aplicación vive en src/App, no en app/. Las respuestas JSON tienen forma consistente, con success, message y data en éxito, y success, message y errors en error.
Reglas de organización que sigue el proyecto:
| Carpeta | Debe contener |
|---|---|
Constants | Solo datos estáticos. |
Actions | Flujos de negocio y lógica de resolución. |
Validators | Reglas de validación. |
QueryBuilders | Construcción de consultas. |
| Comandos y controladores | Orquestación, no lógica de dominio reutilizable. |
Autenticación de la API
Las rutas protegidas de la versión 2 exigen dos encabezados:
| Encabezado | Para qué |
|---|---|
ACCESS-KEY | Identifica al consumidor. |
SECRET-KEY | Autentica la petición. |
Los tokens se administran con token:create y tienen estado: solo los activos son válidos.
Conceptos del dominio
| Término | Qué es |
|---|---|
| MDA | Mercado de Día en Adelanto. Precios del día siguiente. |
| MTR | Mercado de Tiempo Real. Precios de la operación real. |
| PML | Precio Marginal Local. Se descompone en energía, pérdidas y congestión. |
| Nodo | Punto del sistema eléctrico con precio propio. |
| Zona de carga | Agrupación de nodos. |
| SIN / BCA / BCS | Sistemas eléctricos: Nacional, Baja California y Baja California Sur. |
| Commodity | Insumo con precio de referencia, como el gas natural. |
Relación con otros sistemas
| Sistema | Relación |
|---|---|
mem-sync-prices | Descarga los CSV de CENACE a S3. |
mem-parse-csv-prices | Convierte los CSV en mensajes por nodo. |
mem-frontend | Consume la API para desplegar precios. |
mem-auth-service | Autentica a los usuarios del frontend. |
sy-energy | Consume precios para los cálculos pass-through. |
Riesgos y gaps
- Falta confirmar cómo consume
sy-energyesta información: por API o leyendo la base directamente. - No está documentado el contrato de la API para consumidores externos.
- No está documentada la política de rotación de tokens.
- Existe un comando de prueba (
command:name) sin propósito real en el código.
Próxima revisión
Al documentar el contrato público de la API.