Saltar a contenido

SYS-ADR-003 — Mediciones en MongoDB; identidad y configuración en Postgres

Estado Aceptada
Decisión 2026-04 la adopción de MongoDB; 2026-09 su uso efectivo para mediciones
Registrada 2026-09-30
Reemplaza CLOUD-ADR-003 — eventos en Postgres con JSONB y particionado
Relacionadas SYS-ADR-002, SYS-ADR-008

Contexto

El Cloud tiene dos clases de datos con necesidades opuestas:

Identidad y configuración Mediciones
Volumen decenas a miles de filas millones de documentos por día
Forma relacional, con integridad referencial series de puntos homogéneos por propiedad
Consultas uniones, permisos, unicidad rango temporal por propiedad y máquina
Consistencia transaccional por documento alcanza

CLOUD-ADR-003 había decidido resolver las dos con Postgres: una tabla de eventos con payload JSONB y particionado. Nunca se implementó.

Decisión

Dos almacenes, con la frontera puesta en el tipo de dato, no en el componente:

Almacén Qué guarda
Postgres tenants, usuarios, roles y permisos, invitaciones, dispositivos y sus claves de API, disposiciones del dashboard, registros de actividad, reglas de alarma y notificaciones
MongoDB la colección measurements, y nada más

MongoDB no es una dependencia crítica del arranque: si no está disponible, la API arranca igual, la ingesta responde 500 y todo el ABM sigue funcionando. Ver calidad y resiliencia, escenario E5.

Alternativas consideradas

Alternativa Por qué no
Postgres con JSONB y particionado, como decía CLOUD-ADR-003 La forma jerárquica del estándar AAS encaja mejor en documentos que en una tabla de eventos
ArangoDB Evaluada explícitamente y descartada: menor ecosistema en Go
Extender InfluxDB a la nube Ataría el almacén de la nube al de la planta, que SYS-ADR-001 usa como desacople
Un solo almacén para todo Ninguna de las dos opciones cubre bien los dos perfiles

Consecuencias

A favor:

  • Cada almacén hace lo que hace bien, y los índices de mediciones están diseñados para las dos consultas que el dashboard realmente hace: último valor de una propiedad, y una propiedad en una ventana de tiempo.
  • La caída del almacén de mediciones no voltea el login ni el ABM. Es una de las propiedades de resiliencia mejor logradas del sistema.

En contra:

  • Dos bases más que operar, respaldar y monitorear. Ninguna tiene hoy política de retención, y solo una tiene respaldos —los automáticos del plan gratuito del proveedor de Postgres—.
  • No se sabe dónde corre MongoDB en producción. Es el hueco más grave que deja esta ADR: el almacén de todas las mediciones no está documentado en ningún repositorio. Ver contenedores C4.
  • El aislamiento por tenant en las mediciones lo impone un índice, no el motor. Ver SYS-ADR-002.

Evidencia