Skip to content
GitHub

Mother Database

Mother es el nombre del servicio de base de datos PostgreSQL 16 que actúa como el núcleo de almacenamiento del ecosistema Nostromo. Contiene tanto los datos compartidos del sistema (parámetros, monedas, configuraciones globales) como la lógica de autenticación, autorización y gestión de tenants.

El sistema implementa un modelo multi-tenant donde una única instancia de PostgreSQL alberga múltiples empresas (tenants) de forma aislada.

nostromo_common

Base de datos con parámetros compartidos: monedas, tipos de cambio, indicadores económicos, AFPs, ISAPREs, y tablas de referencia.

nostromo_command

Base de datos de control central: autenticación (usuarios, sesiones), gestión de tenants, y monitoreo del sistema.

Databases por Tenant

Cada empresa tiene su propia base de datos con schema accounting aislado, usando template accunting_template.

graph TB
    subgraph Mother["Mother (PostgreSQL 16)"]
        NC["nostromo_common"]
        CMD["nostromo_command"]
        T1["tenant_empresa_1"]
        T2["tenant_empresa_2"]
        TN["tenant_empresa_n..."]
    end
    
    NC -->|"Parámetros"| T1
    NC -->|"Parámetros"| T2
    NC -->|"Parámetros"| TN
    CMD -->|"Auth + Config"| T1
    CMD -->|"Auth + Config"| T2
    CMD -->|"Auth + Config"| TN

Contiene las tablas maestras de parámetros del sistema chileno:

TablaDescripción
monedasTipos de cambio (USD, EUR, UF, UTM) desde Banco Central
afpsAdministradoras de Fondos de Pensiones con tasas vigentes
isapresInstituciones de salud y planes
tramos_impuestoTramos de impuesto único de segunda categoría
topes_imponiblesTopes para cotizaciones previsionales
gratificacionParámetros de gratificación legal

Functions: Cálculo de UF a fecha, conversión de monedas, interpolación de tasas.

Views: Vista consolidada de parámetros vigentes por período.

CriterioPostgreSQL 16Alternativas
AutenticaciónSCRAM-SHA-256 nativoMySQL: caching_sha2 menos probado
Multi-tenantSchemas + databases aisladosMongoDB: menos aislamiento nativo
TransaccionesACID completo, MVCCRedis: eventual consistency
Extensionespg_cron, pgbouncer, timescaledbLimitado en otros RDBMS
Madurez35+ años, battle-testedMenor track record
LicenciaPostgreSQL License (libre)Oracle/SQL Server: costos
  • SCRAM-SHA-256: Autenticación moderna resistente a ataques de replay
  • Row-Level Security (RLS): Aislamiento de datos por tenant a nivel de fila
  • CTEs y Window Functions: Queries complejos para reportes financieros
  • JSONB: Almacenamiento flexible para configuraciones dinámicas
  • Full-Text Search: Búsqueda en documentos y descripciones