Thinking Like an Architect

This ad is not shown to multipass and full ticket holders
React Summit
React Summit 2025
June 13 - 17, 2025
Amsterdam & Online
The biggest React conference worldwide
Learn More
In partnership with Focus Reactive
Upcoming event
React Summit 2025
React Summit 2025
June 13 - 17, 2025. Amsterdam & Online
Learn more
Bookmark
Rate this content

¿Recuerdas cuando la arquitectura de software parecía solo cajas y flechas en una pizarra? En esta masterclass, desafiaremos esa visión y exploraremos lo que realmente importa en el diseño de software moderno. Descubrirás cómo los arquitectos exitosos piensan más allá de las especificaciones técnicas, viendo la arquitectura como una historia viva moldeada por personas, equipos y necesidades en evolución. Obtendrás nuevas perspectivas sobre cómo construir sistemas que perduren y aprenderás por qué las mejores arquitecturas se tratan más de habilitar a las personas que de imponer decisiones técnicas. Únete a mí en un viaje que podría cambiar para siempre la forma en que piensas sobre la arquitectura.

This talk has been presented at Node Congress 2025, check out the latest edition of this JavaScript Conference.

Luca Mezzalira
Luca Mezzalira
23 min
17 Apr, 2025

Comments

Sign in or register to post your comment.
Video Summary and Transcription
En el desarrollo de software moderno, la arquitectura es más que solo seleccionar la pila tecnológica adecuada; implica la toma de decisiones, compensaciones y considerar el contexto del negocio y la organización. Comprender el espacio del problema y centrarse en las necesidades de los usuarios son esenciales. La flexibilidad arquitectónica es clave, adaptando el nivel de granularidad y eligiendo entre diferentes enfoques. El pensamiento holístico, la visión a largo plazo y la comprensión del dominio son cruciales para tomar mejores decisiones. La comunicación efectiva, la inclusión y la documentación son habilidades fundamentales para los arquitectos. Democratizar la comunicación, priorizar el valor y adoptar arquitecturas adaptativas son clave para el éxito.
Available in English: Thinking Like an Architect

1. Introducción a la Arquitectura

Short description:

En el desarrollo de software moderno, los desarrolladores tienen más en qué pensar, incluyendo DevOps, arquitectura y seguridad. La arquitectura no se trata solo de seleccionar la pila tecnológica adecuada; implica la toma de decisiones, el equilibrio de compensaciones y el manejo de consecuencias. Debe considerarse una mentalidad más que solo un título de trabajo. El ponente, Luca, comparte 11 ideas basadas en su experiencia en varios roles y organizaciones. Enfatizan la importancia de entender el espacio del problema, no solo enfocándose en la tecnología, y considerando el contexto del negocio y la organización. La arquitectura está directamente vinculada a la cultura de ingeniería y la organización.

En el desarrollo de software moderno, cambiamos la forma en que solíamos diseñar software. Pero el verdadero desafío ahora es que los desarrolladores tienen muchas más cosas en qué pensar. Piensa en la parte de DevOps, la arquitectura, la seguridad, y así sucesivamente. Este movimiento de shift left comenzó a entrar de manera muy agresiva hacia los desarrolladores, y ahora necesitan cubrir una variedad de tareas.

El desafío con la arquitectura es que muy a menudo la gente piensa que la arquitectura no es más que seleccionar la pila tecnológica adecuada o la pila tecnológica más avanzada. Desafortunadamente, esto es incorrecto. Porque la realidad es que la arquitectura se compone de tres cosas simples. Tomas algunas decisiones basadas en el contexto y la información que tienes, luego necesitas equilibrar las compensaciones respecto a la decisión que necesitas tomar, y finalmente, lidiar con las consecuencias. Porque la realidad es que la arquitectura no es algo que decides y luego olvidas eso. Necesitas vivir con eso durante un largo período de tiempo muy a menudo.

Por lo tanto, la arquitectura no se define como un título, en mi opinión, sino como una mentalidad. Si tienes el rol de arquitecto dentro de tu título de trabajo, podrías o no representar a un buen arquitecto. Durante esta masterclass, quiero compartir contigo 11 consejos que aprendí en las trincheras en los últimos 22 años. Mi nombre es Luca y actualmente trabajo para AWS. Pero en el pasado, como puedes ver, he desempeñado varios roles que van desde un simple desarrollador hasta un CTO y todo lo que hay en medio. Tuve el placer de trabajar con una gran organización, Unicorn, empresas que pasan de cero a millones de clientes y cosas por el estilo.

Creo que estas 11 ideas te ayudarán a repensar cómo debería ser la arquitectura dentro de tu sistema. Comencemos primero con el espacio del problema. Necesitamos entender eso. En la arquitectura moderna, una cosa que cambia es la parte de descentralización porque ya no estamos descentralizando solo las prácticas, las prácticas de ingeniería a múltiples equipos que están trabajando en un área específica del sistema, sino también la organización. Pero durante la gran mayoría del tiempo, la organización es un pensamiento posterior. Pensamos que con una arquitectura simple como microservicios o una arquitectura basada en autoservicio, lo que sea, resolvemos todos nuestros problemas. Ese no es el caso. El segundo problema es que nos enfocamos mucho en la tecnología. Ignoramos las necesidades del negocio y nos enfocamos en lo que nos apasiona, escribir código o construir con el último servicio en la nube. Y por último, ignoramos nuestro contexto, lo que el negocio necesita. Entonces, ¿cuáles son las habilidades técnicas dentro de nuestra organización y cómo está estructurada nuestra organización y así sucesivamente? Nuestro contexto es el rey aquí porque si diseñamos algo que ayuda a nuestro contexto a prosperar, entonces estamos en una buena situación.

Así que déjame comenzar con algunos consejos que aprendí en las trincheras en los últimos 22 años. Así que, primero que todo, necesitas recordar que la arquitectura está vinculada, directamente vinculada a la cultura de ingeniería y la organización.

2. Consideraciones para el Diseño del Sistema

Short description:

Seleccionar un enfoque de monorepo versus un polyrepo da forma a la comunicación del equipo. Las decisiones técnicas no deben subestimarse, ya que definen el flujo de trabajo y la comunicación del equipo. Comprender las necesidades del producto/negocio y recopilar comentarios de los usuarios son cruciales. Las masterclasses colaborativas como event storming y domain storytelling se centran en la comprensión del negocio. Comienza con los límites para definir dominios centrales, de apoyo y genéricos.

Algo tan simple como seleccionar un enfoque de monorepo versus un polyrepo dará forma a la forma en que tus equipos se comunican entre sí. Y eso no es algo que puedas subestimar. Muy a menudo, la gente piensa que es solo una decisión técnica. La realidad es que básicamente estás definiendo cómo deberían trabajar tus equipos, tal vez utilizando desarrollo basado en trunk. ¿Tienen la habilidad para hacerlo o cuánta fricción crearás dentro de las trincheras y también cómo van a comunicarse? Porque compartir con el monorepo es diferente de compartir con el enfoque de polyrepo y así sucesivamente.

Así que nunca subestimes una decisión técnica pensando que solo vive en ese ámbito. La otra cosa en la que necesitas pensar es en entender qué necesita tu producto o negocio. Este es el primer punto para mí. Y muy a menudo, ya sea que estés trabajando en un proyecto Greenfield o en un proyecto Brownfield se subestima. Es extremadamente importante que entendamos qué tipo de KPIs necesitamos rastrear. ¿Cuál es el beneficio de esta característica para nuestros usuarios? ¿Por qué estamos haciendo eso? ¿Cuál es el producto mínimo valioso que pueden entregar lo antes posible para recopilar información de los usuarios?

Hay dos técnicas que suelo usar con los clientes ahora con AWS, pero antes también en mi empresa. Una es una masterclass colaborativa llamada event storming que reúne a un grupo de personas dentro de la misma sala y comienza a dar un paso atrás de la tecnología y mirar hacia el negocio y cómo se comportarán tus usuarios dentro del sistema. La otra es domain storytelling, muy similar pero con un enfoque diferente donde contamos una historia y explicamos cómo nuestros usuarios van a interactuar con nuestro sistema. Pero ambos tienen algo en común. No necesitan hablar de tecnología que al principio no es necesaria. Necesitas entender qué necesitas expresar dentro de tu sistema.

Y eso nos lleva al segundo consejo. Así que comienza con los límites. Cuando entiendes cómo funciona el sistema, entonces comienzas a pensar en cómo se ven tus límites. El diseño impulsado por el dominio es fenomenal en eso porque generalmente ayuda a crear un vocabulario común entre producto e ingeniería. Pero más importante aún, cuando identificas a través de event storming o domain storytelling los diferentes límites de los que está compuesto tu sistema o tu característica, puedes comenzar a categorizarlos. Puedes definir qué es central, así que las cosas más importantes dentro de tu sistema. Qué es de apoyo que ayuda al núcleo a prosperar y qué es genérico. Déjame darte un ejemplo. Así que si tomamos Netflix, por ejemplo, un dominio central para Netflix, así que la razón por la que Netflix existe es permitirte ver tus series favoritas en cualquier dispositivo y en cualquier momento del día. El dominio de apoyo, por ejemplo, podría ser la personalización. Y la personalización significa que si tengo un catálogo que es el dominio central y tengo una personalización, sí, puedo tener una mejor experiencia. Pero la realidad es que si el servicio de personalización está caído, aún puedo ver el catálogo, aún puedo buscar. Así que no está tan mal. Así que puedo comenzar a aplicar características a los dominios de apoyo.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Escalando con Remix y Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Escalando con Remix y Micro Frontends
Top Content
This talk discusses the usage of Microfrontends in Remix and introduces the Tiny Frontend library. Kazoo, a used car buying platform, follows a domain-driven design approach and encountered issues with granular slicing. Tiny Frontend aims to solve the slicing problem and promotes type safety and compatibility of shared dependencies. The speaker demonstrates how Tiny Frontend works with server-side rendering and how Remix can consume and update components without redeploying the app. The talk also explores the usage of micro frontends and the future support for Webpack Module Federation in Remix.
Entendiendo la Arquitectura Fiber de React
React Advanced 2022React Advanced 2022
29 min
Entendiendo la Arquitectura Fiber de React
Top Content
This Talk explores React's internal jargon, specifically fiber, which is an internal unit of work for rendering and committing. Fibers facilitate efficient updates to elements and play a crucial role in the reconciliation process. The work loop, complete work, and commit phase are essential steps in the rendering process. Understanding React's internals can help with optimizing code and pull request reviews. React 18 introduces the work loop sync and async functions for concurrent features and prioritization. Fiber brings benefits like async rendering and the ability to discard work-in-progress trees, improving user experience.
Componentes de Full Stack
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Componentes de Full Stack
Top Content
RemixConf EU discussed full stack components and their benefits, such as marrying the backend and UI in the same file. The talk demonstrated the implementation of a combo box with search functionality using Remix and the Downshift library. It also highlighted the ease of creating resource routes in Remix and the importance of code organization and maintainability in full stack components. The speaker expressed gratitude towards the audience and discussed the future of Remix, including its acquisition by Shopify and the potential for collaboration with Hydrogen.
Composición vs Configuración: Cómo Construir Componentes Flexibles, Resilientes y a Prueba de Futuro
React Summit 2022React Summit 2022
17 min
Composición vs Configuración: Cómo Construir Componentes Flexibles, Resilientes y a Prueba de Futuro
Top Content
Today's Talk discusses building flexible, resilient, and future-proof React components using composition and configuration approaches. The composition approach allows for flexibility without excessive conditional logic by using multiple components and passing props. The context API can be used for variant styling, allowing for appropriate styling and class specification. Adding variants and icons is made easy by consuming the variant context. The composition and configuration approaches can be combined for the best of both worlds.
Patrones de Arquitectura Remix
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Patrones de Arquitectura Remix
Top Content
This Talk introduces the Remix architecture patterns for web applications, with over 50% of participants using Remix professionally. The migration from single page applications to Remix involves step-by-step refactoring and offers flexibility in deployment options. Scalability can be achieved by distributing the database layer and implementing application caching. The backend for frontend pattern simplifies data fetching, and Remix provides real-time capabilities for collaborative features through WebSocket servers and Server-SendEvents.

Workshops on related topic

IA a demanda: IA sin servidor
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
IA a demanda: IA sin servidor
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
En esta masterclass, discutimos los méritos de la arquitectura sin servidor y cómo se puede aplicar al espacio de la IA. Exploraremos opciones para construir aplicaciones RAG sin servidor para un enfoque más lambda-esque a la IA. A continuación, nos pondremos manos a la obra y construiremos una aplicación CRUD de muestra que te permite almacenar información y consultarla utilizando un LLM con Workers AI, Vectorize, D1 y Cloudflare Workers.
Masterclass de alto rendimiento Next.js
React Summit 2022React Summit 2022
50 min
Masterclass de alto rendimiento Next.js
Workshop
Michele Riva
Michele Riva
Next.js es un marco convincente que facilita muchas tareas al proporcionar muchas soluciones listas para usar. Pero tan pronto como nuestra aplicación necesita escalar, es esencial mantener un alto rendimiento sin comprometer el mantenimiento y los costos del servidor. En este masterclass, veremos cómo analizar el rendimiento de Next.js, el uso de recursos, cómo escalarlo y cómo tomar las decisiones correctas al escribir la arquitectura de la aplicación.
OSZAR »