Ingeniería de IbisQuest

Arquitectura, decisiones y prácticas que sostienen una plataforma de OKRs preparada para evolucionar.

Detalles de ingeniería

La arquitectura de IbisQuest busca mantener límites claros, una operación sencilla y una base preparada para evolucionar. Estos son los criterios técnicos y las decisiones que sostienen el producto.

Resumen técnico

Arquitectura

Límites claros para evolucionar

El sistema combina módulos independientes, organización por funcionalidad y separación de lecturas y escrituras para mantener el crecimiento bajo control.

Modular MonolithClean ArchitectureVertical Slice ArchitectureCQRS

Producto SaaS

Organizaciones con límites propios

El producto contempla organizaciones, equipos, colaboradores, roles y permisos dentro de un workspace multitenant.

MultitenantRolesPermissions

Calidad

Decisiones verificables

La calidad se valida en distintos niveles: límites arquitectónicos, colaboración entre componentes y comportamiento aislado.

Architecture TestingIntegration TestingUnit Testing

Arquitectura y límites

01

Interfaz y API

Blazor, ASP.NET Core y REST APIs exponen la experiencia y los contratos de entrada del producto.

02

Casos de uso por funcionalidad

La organización por feature slices mantiene cada flujo cerca de sus reglas y colaboradores.

03

Dominio y reglas de negocio

Los límites del dominio concentran las reglas que permiten configurar, alinear y seguir objetivos.

04

Persistencia e integraciones

Entity Framework, Azure SQL, Microsoft Entra y Azure Communication Services soportan datos, identidad e invitaciones.

Decisiones y tradeoffs

DecisiónMotivoBeneficioTradeoff y revisión
Monolito modularMantener una operación sencilla mientras crece el producto.Despliegue y colaboración entre módulos con menor complejidad operativa.Menor independencia que microservicios; revisar si los módulos requieren escalar o desplegarse de forma independiente.
CQRSSeparar las necesidades de lectura y escritura por caso de uso.Flujos más explícitos y modelos ajustados a cada operación.Más código y posibles duplicaciones; revisar si la complejidad supera el beneficio.
MultitenancySoportar varias organizaciones dentro del producto.Modelo SaaS con límites organizacionales centralizados.Mayor complejidad de autorización y aislamiento; revisar controles si cambia el modelo de confianza.
Mensajería síncronaMantener explícita la colaboración entre módulos.Flujos fáciles de seguir dentro del monolito.Acoplamiento temporal; revisar si aparecen procesos largos o necesidades de resiliencia asíncrona.
REST APIsSeparar clientes y servicios mediante contratos conocidos.Interoperabilidad y evolución independiente de la interfaz.Necesidad de mantener contratos; revisar versionado si crecen los consumidores.
Entity Framework y persistencia relacionalOrganizar el acceso a datos y mantener consistencia transaccional.Productividad y modelo relacional adecuado para los flujos actuales.Acoplamiento al modelo relacional; revisar si cambian las necesidades de volumen o consulta.

Stack tecnológico

Aplicación

Experiencia y servicios

La aplicación utiliza .NET, ASP.NET Core, Blazor y REST APIs para organizar la experiencia y los casos de uso.

.NETASP.NET CoreBlazorREST APIs

Datos

Persistencia organizada

Entity Framework junto con Unit of Work y Repository organizan el acceso a SQL Server y Azure SQL.

Entity FrameworkSQL ServerAzure SQL

Cloud e integración

Servicios preparados para un producto real

La identidad y el acceso se gestionan con Microsoft Entra y las invitaciones por correo con Azure Communication Services.

Microsoft EntraAzure Communication ServicesAzure

Seguridad conceptual y calidad

Identidad y multitenancy

La identidad se gestiona con Microsoft Entra. Las organizaciones, roles y permisos forman parte del modelo conceptual de acceso al workspace, manteniendo el aislamiento entre contextos organizacionales.

Pruebas por nivel

Architecture Testing valida límites, Integration Testing valida colaboración entre componentes y Unit Testing valida comportamientos aislados.

Forma de trabajo

Principios de implementación

SOLID y Clean Code guían la implementación. La mensajería síncrona entre módulos mantiene explícita la colaboración dentro del monolito.

Herramientas de asistencia

Codex y GitHub Copilot aceleran la exploración, documentación y tareas repetitivas, mientras las decisiones y la validación final permanecen bajo responsabilidad humana.

¿Quieres volver a la narrativa del producto?