Skip to content

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

CampoValor
TipoAPI / servicio
Lenguaje y frameworkPHP 8.5 · Laravel 13
Base de datosMySQL
ColasAWS SQS
EjecuciónServidor, con worker de cola y scheduler
DespliegueDeployer + 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

text
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-energy

mem-api es el punto donde los datos crudos del mercado se vuelven consultables.

Arquitectura

Estilo de controlador delgado con acciones y constructores de consulta:

text
ruta → form request (valida) → controlador → acción de dominio → respuesta

El 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:

CarpetaDebe contener
ConstantsSolo datos estáticos.
ActionsFlujos de negocio y lógica de resolución.
ValidatorsReglas de validación.
QueryBuildersConstrucción de consultas.
Comandos y controladoresOrquestación, no lógica de dominio reutilizable.

Autenticación de la API

Las rutas protegidas de la versión 2 exigen dos encabezados:

EncabezadoPara qué
ACCESS-KEYIdentifica al consumidor.
SECRET-KEYAutentica la petición.

Los tokens se administran con token:create y tienen estado: solo los activos son válidos.

Conceptos del dominio

TérminoQué es
MDAMercado de Día en Adelanto. Precios del día siguiente.
MTRMercado de Tiempo Real. Precios de la operación real.
PMLPrecio Marginal Local. Se descompone en energía, pérdidas y congestión.
NodoPunto del sistema eléctrico con precio propio.
Zona de cargaAgrupación de nodos.
SIN / BCA / BCSSistemas eléctricos: Nacional, Baja California y Baja California Sur.
CommodityInsumo con precio de referencia, como el gas natural.

Relación con otros sistemas

SistemaRelación
mem-sync-pricesDescarga los CSV de CENACE a S3.
mem-parse-csv-pricesConvierte los CSV en mensajes por nodo.
mem-frontendConsume la API para desplegar precios.
mem-auth-serviceAutentica a los usuarios del frontend.
sy-energyConsume precios para los cálculos pass-through.

Riesgos y gaps

  • Falta confirmar cómo consume sy-energy esta 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.