nostromo_common
Base de datos con parámetros compartidos: monedas, tipos de cambio, indicadores económicos, AFPs, ISAPREs, y tablas de referencia.
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:
| Tabla | Descripción |
|---|---|
monedas | Tipos de cambio (USD, EUR, UF, UTM) desde Banco Central |
afps | Administradoras de Fondos de Pensiones con tasas vigentes |
isapres | Instituciones de salud y planes |
tramos_impuesto | Tramos de impuesto único de segunda categoría |
topes_imponibles | Topes para cotizaciones previsionales |
gratificacion | Pará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.
Sistema de autenticación y sesiones:
| Tabla | Descripción |
|---|---|
users | Usuarios del sistema con hash SCRAM |
user_sessions | Sesiones activas con JWT y expiración |
user_roles | Roles asignados por tenant |
refresh_tokens | Tokens de renovación |
Gestión de tenants y configuración:
| Tabla | Descripción |
|---|---|
tenants | Empresas registradas con RUT y metadata |
tenant_databases | Mapping tenant a base de datos |
tenant_config | Configuración específica por tenant |
Métricas y auditoría del sistema.
| Criterio | PostgreSQL 16 | Alternativas |
|---|---|---|
| Autenticación | SCRAM-SHA-256 nativo | MySQL: caching_sha2 menos probado |
| Multi-tenant | Schemas + databases aislados | MongoDB: menos aislamiento nativo |
| Transacciones | ACID completo, MVCC | Redis: eventual consistency |
| Extensiones | pg_cron, pgbouncer, timescaledb | Limitado en otros RDBMS |
| Madurez | 35+ años, battle-tested | Menor track record |
| Licencia | PostgreSQL License (libre) | Oracle/SQL Server: costos |