Header Ads Widget

Ticker

6/recent/ticker-posts

El papel de la arquitectura basada en dominios y GraphQL en la transformación digital

 Paolo Negri, director de tecnología de Contentful, cree que GraphQL se puede utilizar para el modelado de dominios a gran escala dentro de iniciativas de transformación digital.

GraphQL está en camino de igualar la popularidad de la API REST , lo que hace que la cuestión de su función futura sea  extremadamente relevante, no solo para la audiencia técnica, sino para cualquier persona que lidere o participe en la construcción de negocios digitales o procesos de transformación digital .

El problema de las empresas digitales a escala

Cuando un negocio digital escala significativamente, a menudo hay varios equipos dentro de varios departamentos que necesitan colaborar entre sí. Esto requiere establecer áreas donde los equipos sean completamente independientes, áreas que necesitan coordinación y gestionar la interfaz entre equipos.

El desafío se trata realmente de la colaboración en equipo  : reducir la carga cognitiva y los procesos que rodean las interfaces al tiempo que permite que la comunicación y los procesos comerciales fluyan fácilmente a través de toda la organización. Estos procesos de comunicación modelan la estructura de una red informática moderna (como Internet) en lugar de un sistema de jerarquías en silos.

Para complicar las cosas, el desafío involucra dos aspectos complejos y fuertemente interrelacionados: la organización en  sí misma y las tecnologías que utiliza. Ambos no solo deben ser funcionales, sino que también deben diseñarse de manera coherente de tal manera que la implementación de cambios en cualquiera de ellos tenga un costo relativamente bajo.

La transformación digital es un término genérico para describir el proceso de alto nivel de rediseño de la estructura y los procesos de una organización para aprovechar al máximo las posibilidades de las tecnologías digitales actuales para entregar productos, que en sí mismos son total o parcialmente digitales.

Dominios como un conjunto de herramientas para desenredar la complejidad y habilitar equipos

El desarrollo de software ha estado trabajando constantemente con el desafío de unir el mundo real y lo digital. Algunos enfoques desarrollados en este contexto pueden elevarse de esa disciplina al tema más amplio de la transformación digital, de una manera similar a cómo se utilizan ahora los principios ágiles para impulsar las elecciones a un nivel mucho más alto que el que  tenían en mente los proponentes del manifiesto original .

El libro fundamental Domain Driven Design  establece la idea de utilizar un modelo de dominio junto con Ubiquitous Language  para facilitar una colaboración coherente y eficaz entre los expertos en el dominio y los desarrolladores de software.

Los mismos conceptos exactos de Modelo de dominio y Lenguaje ubicuo se pueden usar para administrar un aspecto fundamental de la transformación digital, cuyo objetivo es tener equipos habilitados tecnológicamente que puedan iterar a un ritmo rápido. Sería útil tener una forma de definir lo que un equipo poseería o trabajaría efectivamente, y cómo ese equipo interactuaría con otros equipos.

Los dominios son muy útiles para este propósito exacto: un equipo puede ser definido por el dominio (o dominios) que posee. Otro paso interesante es mirar las interfaces entre equipos como dominios; donde un equipo mantiene internamente un dominio y está expuesto a las interfaces de otros equipos que también están en forma de dominios y constituyen especializaciones o enriquecimiento del dominio original.

Llevando este concepto más allá,  podría modelar una organización completa como un compuesto de equipos que toman uno o más dominios como entrada y luego realizan transformaciones y acciones en estos dominios. Esto finalmente expondrá nuevos dominios como una interfaz con los otros equipos, quienes posteriormente podrán, a su vez, consumirlos como entrada.

También se puede observar cómo este enfoque se puede aplicar no solo internamente a una organización, sino también en su interfaz, por lo que la entrada y salida de la organización en sí puede verse en términos de dominios.

Este diseño impulsado por dominios une los dos aspectos clave de la transformación digital: organización y tecnología . El concepto de dominio tiene un papel claro y relevante desde el punto de vista empresarial tanto como significativo en términos de implementación técnica. Esto es muy superior a tener equipos que están en conflicto por razonamientos en el frente técnico, preocupaciones relacionadas con la implementación, como los servicios que poseen y ejecutan, y conceptos más abstractos al intentar capturar el valor aportado al negocio desde el punto de vista del producto.

Una vez que se define un dominio, resulta más intuitivo definir su impacto y función en la dinámica empresarial actual y ponerse de acuerdo sobre lo que es técnicamente necesario para operar el dominio.

Cómo el pensamiento basado en el dominio puede permitir una iteración rápida

Con una organización construida en torno al concepto de Agile Teams  y los dominios que ponen a disposición y operan, es posible identificar fácilmente lo que implica una nueva iniciativa empresarial digital y cómo se puede lograr.

Los equipos pueden incluso definir ideas en bruto en términos de los dominios en los que se basarán. De esta manera, podemos identificar qué nuevos dominios deben definirse o si es necesario repensar los dominios actuales para hacer posible la iniciativa.

Dado que la definición de dominio es crucial para el funcionamiento de la empresa y la organización, se aumentan los conocimientos y la conciencia relevantes para la empresa en varios niveles. El liderazgo puede tener discusiones menos empantanadas por la mecánica (detalles sobre cómo funcionan las cosas) mientras que los equipos obtienen más información sobre cómo se relaciona su trabajo con el lenguaje del liderazgo y los negocios y, por lo tanto, pueden tener una percepción mucho más clara de lo que están haciendo. están participando y contribuyendo a.

Para obtener y mantener un ritmo de iteración rápido en esta configuración, los equipos están técnicamente capacitados para realizar repetidamente algunas acciones fundamentales que son: la definición y modelado de un nuevo dominio, derivar nuevos dominios de los existentes, operar cambios en dominios y finalmente exponer dominios para la interacción del usuario.

Las empresas ya confían en la capacidad de lidiar con dominios

Si bien es posible que las organizaciones aún no piensen en términos de dominios, de hecho ya se basan en gran medida en el modelado de dominio implícito utilizado para implementar los procesos comerciales actuales y cumplir con las iniciativas digitales.

Esto significa que muchos modelos de dominio existentes  probablemente se hayan  documentado de alguna forma. Por lo tanto, la brecha hacia el dominio impulsado no es tan grande como parece. Hay actividades estrechamente relacionadas con el modelado de dominios que se realizan de forma rutinaria en cualquier empresa; como  estructurar datos en los que se basan las aplicaciones, definir esquemas de bases de datos y desarrollar sistemas de KPI y descripciones formales de procesos. La mayor parte del cambio requerido se produce en el nivel en el que los equipos razonan y desarrollan una cultura, en la que el modelado de dominios es necesario para identificar las necesidades de implementación.

GraphQL es clave para habilitar la arquitectura dirigida por dominios

GraphQL  se define como "lenguaje de consulta para API y un tiempo de ejecución para completar esas consultas con sus datos existentes".  Ha generado un ecosistema tecnológico que tiene un propósito mucho mayor  que solo permitir la consulta de datos.

GraphQL obtiene la mayor parte de su valor de manera efectiva al construir sobre la base de la definición de esquema;  una versión de nivel superior de una definición de esquema entidad-relación que se preocupa más por el modelado adecuado y la definición de tipo. Esto se compara con el modelado de esquemas de base de datos, que a menudo se ve afectado y distorsionado por los tecnicismos del motor de la base de datos. Esto hace que GraphQL sea un ajuste natural para el modelado de dominios .

GraphQL también trae otras capacidades como mutaciones , que son las reglas sobre cómo se pueden cambiar los datos del dominio. Las mutaciones  también son un ejemplo de cómo la discusión sobre las prácticas de modelado GraphQL es muy activa .

GraphQL es una herramienta que puede reflejar de cerca el modelo de dominio conceptual de un ecosistema de software. Proporciona una forma estandarizada de exponer las API del modelo de dominio y definir la modalidad de interacción con el dominio. Dado que GraphQL es la herramienta efectiva de próxima generación para modelar dominios, los equipos que la adopten tendrán casi con certeza una ventaja sobre los que no lo hagan .

Cómo GraphQL permite la iteración rápida impulsada por el dominio

Esta perspectiva nos permite mirar el ecosistema GraphQL desde un punto de vista diferente al de evaluarlo simplemente como una cadena de herramientas. A su vez, eso proporciona una gran revelación de que el ecosistema ya produce herramientas que ayudan a mover las arquitecturas actuales en el nuevo patrón.

Soporte para la definición de un modelo de dominio

Esta categoría también podría denominarse modelo de dominio nativo,  ya que sirve como una familia de plataformas y herramientas que facilitan la configuración de un modelo de dominio desde cero. Dentro de esta categoría, las plataformas van desde aquellas como Contentful , que le permite poner en marcha rápidamente modelos de dominio para casos de uso de contenido, hasta plataformas más genéricas como AWS AppSync  que permiten la creación de dominios de propósito más general.

Exponer fuentes de datos como modelo de dominio

Esta categoría se trata de unir datos existentes en la nueva arquitectura impulsada por el dominio GraphQL. Prisma  es un actor en este espacio que permite la definición de modelos de dominio sobre bases de datos y almacenes de datos.

Generación de modelos de dominio a partir de una combinación de otros modelos de dominio

Una vez modelos de dominio se codifican como esquemas GraphQL, es posible llevar a cabo operaciones tales como  esquema de costura  que esencialmente permite una definición de modelos de dominio de una combinación de otros modelos de dominio. Este es uno de los aspectos más intrigantes en el contexto de la transformación digital, ya que puede desempeñar un papel clave en la creación de interfaces entre equipos o en la creación de productos digitales basados ​​en activos y capacidades existentes.

Exposición de modelos de dominio para la interacción humana

Aquí se encuentra la intersección entre UI / UX y el modelo de dominio, con una nueva ola de jugadores como  Gatsby JS  que adoptan GraphQL y una moderna cadena de herramientas frontend. Esta es un área donde el modelo de dominio no termina siendo la entidad central pero, a medida que el ecosistema evoluciona, eventualmente se espera un papel más importante para el esquema.

Propagación, procesamiento y distribución de cambios de datos y modelos de dominio

Todo lo anterior hará que sea necesario un cableado para la actividad basada en los modelos de dominio y los datos que contienen. Todavía no hay jugadores GraphQL específicos en este espacio, pero hay dos categorías de herramientas y plataformas impulsadas por eventos que probablemente desempeñen un papel importante. Entre ellas se incluyen cadenas de herramientas de integración continua como ircle CI , kits de herramientas de mensajería y eventos como afka , y plataformas análogas sin servidor como AWS inesis  y ambda . Esto también sirve como un campo de juego para nuevos jugadores, como Netlify , que difuminan las líneas entre la integración, el despliegue y la distribución continuos, y podrían inducir a innovacionescinco  tendencias  en arquitectura técnica .

La perspectiva para el futuro

Es necesario definir nuevos KPI y conjuntos de características estándar en torno a la arquitectura impulsada por el dominio, y lo que facilita las iteraciones en ellos. En cada categoría, ya sea comercio electrónico, contenido, pagos y facturación, o CRM, se puede esperar mucha innovación en la transición de una solución empaquetada a una solución que permite la entrega de productos digitales en dominios especializados.

Es probable que la arquitectura de software empresarial vea una nueva ola de innovación, similar a la de SaaS y la adopción de la nube, que formará nuevas pilas a través del establecimiento de herramientas y plataformas de próxima generación.

La transformación digital se puede facilitar de una manera mucho más fluida con el uso de modelos de dominio y conceptos de lenguaje ubicuos . Esto se logra brindando a los equipos dentro de una organización una visión mejor y más clara de los objetivos establecidos y cómo se pueden lograr. GraphQL es clave para respaldar esto como una forma valiosa de cumplir con las consultas de datos, y lo hace de manera eficiente ya que se basa en la definición de esquemas como base.

Para obtener una imagen más completa de la transformación digital y la web, también he escrito otros artículos sobre el valor innovador subestimado de los generadores de sitios estáticos  y cómo la computación en la nube se dirige en la dirección de utilizar GraphQL y no tener servidores , que se relacionan con este.

Publicar un comentario

0 Comentarios