Arquitectura Desacoplada en 3 Capas: Escalabilidad y Aislamiento de Misión Crítica
Diseñada para garantizar mantenibilidad a largo plazo, separación estricta de responsabilidades y despliegues independientes sin riesgo de acoplamiento.
Estructura de la Arquitectura en 3 Capas
Separación estricta de responsabilidades para garantizar mantenibilidad, escalabilidad e independencia total entre el núcleo del framework, la lógica de negocio y la infraestructura de despliegue.
Quarum (Core)
Framework centralizado de alto rendimiento instalado vía paquete Python. Provee el motor declarativo inmutable, gestión de seguridad y abstracción de datos.
-
check_circle
Motor Model-Driven & Adaptador de Clases:
application.py/Clazz. -
check_circle
Autenticación, Sesión y Permisos RBAC: Modelos
_qcore_user,_qcore_permission. -
check_circle
Motor de Explotación de Datos: Generación de PDF (
xhtml2pdf), CSV y Códigos QR. -
check_circle
Rama de Migraciones Core: Gestionada bajo
quarum/migrations/.
Garantiza la consistencia del sistema e inmutabilidad del framework central sin riesgos de regresión al actualizar el paquete.
Payload (Aplicación)
Capa modular que contiene las definiciones de dominio y reglas comerciales. Es completamente desacoplada y exportable entre instancias.
-
check_circle
Metadatos de Clases:
classes/*.json(Fuente única de verdad). -
check_circle
Modelos y Artefactos:
project/models/production/. -
check_circle
Handlers y Eventos: Campos calculados en
events.pyyactions.py. -
check_circle
Plugins y Estilos: Extensión en
plugins/<nombre>/y marca enproject/static/. -
check_circle
Rama de Migraciones App: Versiones en
migrations/versions/.
Total libertad para extender capacidades y modularizar la lógica de negocio sin tocar una sola línea de código del Core.
Instancia (Despliegue)
Entorno de host donde se ejecuta el binario. Aísla las credenciales, conexiones persistentes a bases de datos relacionales y buckets de almacenamiento.
-
check_circle
Entrypoint Único WSGI:
wsgi.py(~30 líneas) y variables de entorno.env. -
check_circle
Persistencia Relacional: MySQL / MariaDB con motor
InnoDBobligatorio. -
check_circle
Almacenamiento de Blobs: Directorio
uploads/o Bucket S3 / Wasabi / Alibaba OSS. -
check_circle
Auditoría & Respaldo: Logs en
logs/app.logy directorio debackups/.
Despliegue multi-cliente sobre entornos independientes preservando la soberanía de infraestructura y el aislamiento estricto de datos.
Por Qué Desacoplar Transforma la Operación
La ingeniería de software impulsada por modelos resuelve el dilema clásico entre velocidad de entrega y deuda técnica.
Actualizaciones sin Fricción
Al mantener el Core totalmente desacoplado de la lógica de aplicación, las actualizaciones de seguridad, parches del framework y optimizaciones de rendimiento se aplican de forma transparente sin alterar ningún flujo corporativo.
Reutilización de Código
Las definiciones de la capa Payload se pueden modularizar y empaquetar para reutilizarse en distintas instancias de clientes con mínimas modificaciones, reduciendo el Time-to-Market de nuevas soluciones hasta en un 70%.
Seguridad Estricta
La capa de Instancia e Infraestructura está herméticamente aislada. Cualquier fallo o vulnerabilidad en un plugin de la capa de aplicación queda confinado, impidiendo que se comprometa la base de datos central o el host anfitrión.
Desarrollo en Paralelo
Equipos de frontend, especialistas en reglas de negocio (backend) y DevOps operan de forma autónoma sobre capas distintas sin generar colisiones ni cuellos de botella en el control de versiones Git ni en el CI/CD.
Flujo de Datos y Ejecución en Runtime
Petición HTTP & Entrypoint
Nginx + Gunicorn / wsgi.py
Nginx recibe la petición y la pasa a Gunicorn -> wsgi.py (Resuelve QUARUM_ROOT y lee .env).
Validación & Permisos RBAC
Flask-Login / @verify_permission
create_app() valida la sesión de Flask-Login y
el decorador @verify_permission evalúa los
permisos RBAC en _qcore_permission.
Lógica & Eventos del Payload
after_commit / events.py
Se ejecutan los controladores de la aplicación/plugins y el listener after_commit dispara los campos calculados de
events.py.
Persistencia & Explotación
InnoDB / SoftDeleteMixin / Jinja2
session.py ejecuta la consulta en MySQL/MariaDB
(InnoDB), maneja borrado lógico (SoftDeleteMixin) y renderiza la plantilla Jinja2 o
exportación (CSV/PDF).
Ciclo de Vida de Ejecución Garantizado
Sin fugas de estado entre invocaciones: cada solicitud es procesada bajo transacciones atómicas.
Construye tus sistemas de misión crítica sobre una arquitectura sólida.
Solicita un entorno de pruebas o agenda una sesión técnica de evaluación arquitectónica directa con los ingenieros de Nible Tecnología.
Solicitud de Demostración
Acceso restringido para equipos de ingeniería y arquitectura.