Las piezas de software del sistema y las interfaces por las que dependen unas de otras. Un diagrama de componentes no afirma dónde corre nada ni en qué orden ocurren las cosas: afirmaquién ofrece qué yquién depende de ello, que es lo que decide si una pieza se puede sustituir sin tocar a las demás.
Esta página describía antes el despliegue (navegador, Vercel, Turso, servicios externos) con un flowchart de Mermaid. Eran dos errores: ese dibujo no declaraba una sola interfaz provista ni requerida, que es todo lo que un diagrama de componentes dice; y respondía a la pregunta deel diagrama de despliegue, que ahora existe. Cada página responde ahora a la suya.
El SVG se genera en el servidor desde src/data/componentes.ts con src/lib/uml-component.ts. Entre los tests hay uno que vigila justamente la recaída: falla si algún componente vuelve a nombrar a un proveedor de infraestructura.
Notación
- Rectángulo con el icono de pestañas y «component»Una unidad de software sustituible. Sin el icono ni el estereotipo sería una clase.
- Bola - interfaz provistaLo que el componente ofrece. Hay una sola bola por interfaz, aunque la consuman varios.
- Enchufe - interfaz requeridaLo que el componente necesita. El arco abre siempre hacia la bola a la que se acopla.
- Bola dentro de enchufe - conector de ensamblajeLa dependencia real. En el código corresponde a un import que se puede señalar.
Componentes y sus interfaces
Las piezas de software del sistema y las interfaces por las que dependen unas de otras. Lo que el diagrama afirma es sustituibilidad: un componente que solo depende de interfaces provistas puede cambiarse por otro que ofrezca las mismas sin tocar a sus consumidores.
src/pages/* · src/middleware.ts · src/lib/{security,payments,notify}.ts · src/db/*
El acceso a datos es el único componente del que dependen casi todos, y por eso es también el único punto donde se puede imponer una regla transversal como el aislamiento por cliente del portal. Un atajo que consultara la base sin pasar por ahí no aparecería en este diagrama - y esa es exactamente la clase de fallo que expone los datos de un cliente a otro.