Notas técnicasXendai / Publicación técnica

La arquitectura antes que el proveedor

REFERENCIA
SN-008
Autor
Pedro Trillo
Publicado
Actualizado
LECTURA
9 min

Elegir un proveedor incorpora decisiones sobre cómo funcionará el sistema, qué información conservará y qué resultará difícil cambiar después. La arquitectura permite hacer explícitas esas decisiones antes de que queden repartidas entre integraciones y hábitos de uso. Su objetivo es aceptar dependencias con criterio, no eliminar cualquier relación con una tecnología concreta.

Una plataforma puede resolver necesidades importantes y reducir el trabajo de construcción. También propone una forma de organizar la información, ejecutar acciones y gestionar la operación. Adoptarla supone decidir qué parte de esa forma encaja con el servicio que se quiere prestar.

El problema aparece cuando la selección se hace por capacidades visibles y las consecuencias arquitectónicas se descubren durante la integración. En ese punto, cambiar de opinión puede afectar a mucho más que una llamada a una API.

Diseñar primero no significa cerrar todos los detalles antes de probar una herramienta. Significa identificar las responsabilidades, los límites y las condiciones que permiten evaluar su encaje. El proveedor puede influir en el diseño, pero esa influencia debería formar parte de una decisión reconocible.

Una compra también distribuye responsabilidades

Cuando una empresa adopta una plataforma, puede delegar almacenamiento, ejecución, recuperación de información o gestión de accesos. Cada capacidad externalizada modifica qué conserva bajo su control y qué necesita exigir a otra parte.

Esta distribución no se deduce únicamente de una lista de funciones. Dos productos pueden ofrecer una capacidad parecida y asumir responsabilidades distintas sobre la persistencia, el tratamiento de errores o la administración de usuarios.

Por eso, la pregunta arquitectónica no es solo qué hace el proveedor. También es qué debe seguir haciendo la aplicación para cumplir el compromiso con sus usuarios. Una función gestionada puede reducir trabajo técnico sin resolver las reglas de negocio ni la responsabilidad sobre el resultado.

La selección necesita identificar esas fronteras. Quién conserva el estado de una operación, dónde se comprueban los permisos y qué componente decide que el trabajo está terminado. Las respuestas pueden implicar servicios externos, pero deben seguir siendo comprensibles desde la organización.

También hay que distinguir disponibilidad comercial de capacidad utilizable. Que una función exista no significa que encaje en el entorno, el volumen o las condiciones del proyecto. Su valor depende de cómo se integra con lo que ya existe y de las obligaciones que introduce.

Una decisión de compra bien definida permite explicar qué se delega y qué se retiene. Esa explicación ofrece una base para valorar alternativas sin convertir cada comparación en una colección de funciones desconectadas.

Los contratos importan más que las cajas

Un diagrama puede representar componentes separados y ocultar una dependencia estrecha entre ellos. La separación visual no demuestra que puedan evolucionar de forma independiente.

Lo que importa es el contrato que los conecta: qué información intercambian, qué significado tiene y qué condiciones debe cumplir cada parte. Ese contrato incluye el comportamiento esperado cuando una petición no puede atenderse, no solo el formato del camino correcto.

Una especificación de interfaz ayuda a expresar parte de ese acuerdo. OpenAPI proporciona un lenguaje para describir APIs HTTP de forma independiente del lenguaje de programación utilizado. Esa descripción facilita conocer una interfaz, pero no prueba por sí sola que dos servicios ofrezcan el mismo comportamiento.

En sistemas de IA, esta distinción resulta especialmente importante. Dos modelos pueden recibir estructuras similares y producir respuestas válidas para el mismo esquema, pero diferir en la forma de interpretar una tarea o utilizar una herramienta. Compatibilidad de formato y equivalencia operativa son preguntas distintas.

Los contratos también necesitan expresar qué pertenece a la aplicación. Si una decisión del negocio queda implícita en el comportamiento de un proveedor, puede resultar difícil descubrir cuándo ha cambiado. Si está definida en el sistema, se puede comprobar cómo cada alternativa contribuye a cumplirla.

No todos los contratos requieren una capa de software propia. Pueden empezar como una definición clara y unas pruebas de aceptación. Lo importante es que la frontera tenga un significado que pueda verificarse, además de un nombre en la arquitectura.

El estado condiciona la libertad de cambiar

Una dependencia no reside únicamente en el código que llama a un servicio. También puede estar en la información acumulada y en la forma de interpretarla. Cuando una plataforma conserva estado, importa saber qué representa y cómo se relaciona con el trabajo de la empresa.

Exportar datos no garantiza que pueda reconstruirse una operación en otro entorno. Puede faltar la relación entre registros, el historial de decisiones o el significado de un estado intermedio. La posibilidad de descargar archivos debe distinguirse de la capacidad de continuar el servicio.

Conviene decidir qué información necesita una representación controlada por la organización y cuál puede permanecer gestionada por el proveedor. No existe una respuesta universal. Mantener una copia propia también introduce sincronización, seguridad y mantenimiento.

La decisión depende de las consecuencias de perder acceso o cambiar de herramienta. Si una parte del estado es esencial para atender trabajo pendiente, la arquitectura debe explicar cómo se conserva esa continuidad. Si se trata de información derivada que puede regenerarse, quizá no necesite la misma estrategia.

También importa quién puede consultar y utilizar los registros operativos. Una plataforma puede ofrecer una experiencia cómoda mientras limita la información disponible para investigar un problema. Esa limitación debe conocerse antes de asumir un compromiso que requiere explicar el comportamiento del sistema.

El diseño de datos y estado es, por tanto, una decisión sobre continuidad, además de almacenamiento. Determina qué necesita la empresa para seguir trabajando si cambia una pieza y qué esfuerzo exige mantener esa posibilidad.

Una abstracción debe proteger una diferencia concreta

Introducir una capa entre la aplicación y un proveedor puede ayudar a concentrar traducciones y evitar que sus detalles se propaguen. Pero una abstracción solo aporta valor si se sabe qué diferencia está aislando.

Si únicamente cambia el nombre de una función y transmite intactos todos los conceptos externos, la dependencia puede seguir presente. La aplicación parecerá separada mientras continúa organizada según el modelo de información del proveedor.

El patrón de capa anticorrupción descrito por Microsoft plantea una traducción entre subsistemas con semánticas distintas. También señala que esa separación añade trabajo de mantenimiento y puede introducir latencia. El patrón ofrece un criterio para proteger un modelo propio, no una obligación de añadir capas a todas las integraciones.

Una abstracción excesivamente general puede imponer el mínimo común entre alternativas y dificultar el uso de capacidades valiosas. También puede obligar al equipo a mantener una interfaz que ningún proveedor necesita realmente y cuya utilidad futura es incierta.

Por eso, conviene aislar lo que tiene sentido mantener estable: conceptos del trabajo, estados de aceptación o contratos con otros componentes. Los detalles específicos pueden permanecer visibles en una frontera localizada cuando ocultarlos solo añade complejidad.

La pregunta útil es qué cambio se pretende abaratar y cuánto cuesta preparar esa posibilidad. Si no se puede describir ese cambio, quizá la abstracción esté respondiendo a una aspiración de flexibilidad más que a una necesidad del sistema.

Una frontera explícita con el proveedor
Conexiones del diagrama
  1. Aplicación y reglas del trabajo Guardar estado → Estado del trabajo
  2. Estado del trabajo Recuperar estado → Aplicación y reglas del trabajo
  3. Aplicación y reglas del trabajo Acción autorizada → Herramientas de negocio
  4. Herramientas de negocio Resultado → Aplicación y reglas del trabajo
  5. Aplicación y reglas del trabajo Petición del sistema → Frontera de integración
  6. Frontera de integración Respuesta adaptada → Aplicación y reglas del trabajo
  7. Frontera de integración Petición del proveedor → Proveedor de inferencia
  8. Proveedor de inferencia Respuesta del proveedor → Frontera de integración

Ejemplo conceptual de una frontera localizada. La adaptación no garantiza equivalencia entre proveedores; el comportamiento debe volver a comprobarse al cambiar una pieza. Las cajas representan responsabilidades, no servicios independientes obligatorios.

La aplicación guarda y recupera estado, invoca herramientas autorizadas y recibe sus resultados. Para utilizar inferencia, envía una petición a una frontera de integración que la adapta al proveedor y devuelve su respuesta adaptada. No hay conexión directa del proveedor con las herramientas de negocio en este esquema.

Cambiar exige algo más que conectar otra API

La sustitución de un proveedor puede requerir modificar código, pero también revisar el comportamiento y trasladar información. Reducirla a una cuestión de conectividad ofrece una imagen incompleta del trabajo.

Una nueva alternativa puede interpretar instrucciones de otra manera, imponer límites distintos o producir errores que la aplicación no contempla. Aunque la integración funcione, el servicio necesita volver a demostrar que cumple las condiciones relevantes.

Una migración necesita además comprobar qué ocurre con los trabajos en curso. Puede ser preferible terminarlos en el entorno anterior y enviar los nuevos al siguiente, o preparar una transición específica. Esa elección depende de la identidad y del estado de las operaciones.

También puede cambiar la operación. El equipo tendrá otras herramientas de diagnóstico, procedimientos de acceso o formas de consultar consumos. El coste de cambio incluye aprender a mantener la nueva solución y retirar la anterior sin dejar trabajo desatendido.

No es necesario construir una segunda implementación completa para cada posible proveedor. Sí conviene conocer qué habría que revisar y qué elementos dificultarían una transición. Ese conocimiento permite distinguir una dependencia aceptada de una que se descubre demasiado tarde.

La profundidad del análisis debe ser proporcional al papel del componente. Una herramienta auxiliar sustituible no exige el mismo trabajo que una plataforma que concentra estado, integraciones y decisiones. La arquitectura ayuda a identificar dónde merece la pena conservar opciones.

También hay que considerar el coste de no cambiar. Una dependencia puede seguir siendo razonable durante mucho tiempo si el proveedor aporta valor y cumple las condiciones necesarias. La capacidad de evaluar una salida no obliga a utilizarla.

Elegir con evidencia y aceptar el compromiso

Una vez definidos los límites, la selección puede centrarse en el encaje real. Las pruebas deben examinar las capacidades que sostienen el trabajo y las condiciones que podrían invalidar la alternativa, no únicamente su presentación más favorable.

Esto permite reconocer compromisos. Una opción puede reducir mantenimiento a cambio de concentrar más estado externo. Otra puede ofrecer mayor control y exigir más capacidad interna de operación. La decisión debería explicar por qué ese intercambio resulta adecuado para la organización.

Las condiciones relevantes también pueden evolucionar. Cambian las necesidades del negocio, el volumen de trabajo o la capacidad del equipo. Revisar la elección no significa que fuera equivocada; significa comprobar si sus razones siguen vigentes.

Para ello conviene conservar un registro breve de la decisión: qué se necesitaba, qué alternativas se consideraron, qué dependencia se aceptó y qué hechos harían necesario revisarla. Ese registro evita que la arquitectura quede reducida a la memoria de quienes participaron en la compra.

El registro también debe distinguir los compromisos confirmados de las expectativas. Una capacidad anunciada para más adelante no ofrece la misma base que una función disponible y probada. Si el proyecto depende de una evolución futura, esa condición necesita permanecer visible en la decisión.

Los límites de coste y capacidad merecen el mismo tratamiento. Una prueba pequeña puede confirmar el encaje funcional sin describir todavía el funcionamiento al volumen previsto. La selección debe indicar qué se ha comprobado y qué supuesto sigue pendiente, en lugar de convertir una primera integración satisfactoria en una aprobación sin condiciones.

La arquitectura anterior al proveedor es, en ese sentido, una disciplina de decisión. Permite utilizar capacidades externas sin dejar que su disponibilidad determine silenciosamente el significado del sistema. También permite cambiar el diseño cuando una herramienta ofrece una ventaja suficiente para justificarlo.

El resultado no tiene por qué ser una solución neutral ni intercambiable en todos sus puntos. Debe ser una solución cuyas dependencias tengan un propósito, cuyos límites se puedan explicar y cuyo mantenimiento sea compatible con la empresa que la utiliza.

KEY TAKEAWAY

Elegir proveedor exige conocer qué responsabilidades se delegan, qué contratos conectan las piezas y qué información sostiene la continuidad del trabajo. Una dependencia puede ser una buena decisión si su valor y su coste de cambio son comprensibles. La arquitectura permite aceptar ese compromiso con evidencia y revisarlo cuando cambian sus razones.

XENDAI CONNECTION

Xendai diseña las responsabilidades y las integraciones que permiten elegir tecnología con criterio. El objetivo es aprovechar las capacidades disponibles, conocer las dependencias que se aceptan y mantener una relación clara entre la arquitectura y el trabajo que la empresa necesita resolver.