Los componentes de un sistema — qué desarrollas tú y qué delegas en servicios externos

Este artículo forma parte del curso Fundamentos de informática, que construye desde cero los conocimientos prácticos de informática que necesitas como mínimo para programar y hacer vibe coding.
Una aplicación web se divide en cuatro partes: frontend, backend, base de datos y servicios externos. Con diagramas comprobamos hasta dónde construyes tú y a partir de dónde usas un servicio ajeno.

Este artículo trata los cuatro componentes que forman una aplicación web.

Tres de ellos los desarrollas tú mismo (los construyes y los preparas por tu cuenta) y el restante lo usas como servicio externo.

Los componentes de my-app: los tres que desarrollas tú y el servicio externo
my-app (app de reservas para socios)
Componentes de desarrollo propio
Frontend
  • Pantalla donde se escribe la fecha de reserva y el nombre
  • Se ejecuta en el dispositivo del usuario
Backend
  • Procesa los datos de reserva que recibe
  • Aquí también se verifica la identidad
Base de datos
  • Guarda los datos de reservas y socios
  • Se pueden buscar y actualizar después
Componente que usas como servicio externo
  • Envío de correos de confirmación, pagos y mapas
  • Llama a funciones que opera otra empresa
El marco exterior es una sola aplicación. Los tres del marco superior son los componentes que desarrollas tú mismo, y el marco inferior es el componente que usa funciones que opera otra empresa.

El límite entre desarrollar tú mismo y usar un servicio está justo donde se tocan estos dos marcos.

Una aplicación web se divide en cuatro componentes

Los cuatro componentes son el frontend, el backend, la base de datos (database) y los servicios externos (external service).

Qué hace cada uno de los cuatro componentes y dónde se ejecuta
Frontendla pantallaBackendel servidorBase de datoslos datosServicio externootra empresaDibuja la pantallay toma la entradaProcesa los datosy los devuelveGuarda datos parabuscar y actualizarUsa funciones queopera otra empresaEquipo del usuarioServidorServidorServidor externo
Cada fila es un componente. A la izquierda el nombre, en el centro de qué se encarga y a la derecha dónde se ejecuta. El único que no se ejecuta en tu lado es el de abajo.
Qué se conecta con qué entre los cuatro componentes
Equipo del usuarioFrontendpantalla y entradaBackenddecide y procesaBase de datosreservas y sociosServicio externocorreo y pagosDatos de la reservaLectura y escrituraSolicitud por API
De izquierda a derecha. Solo el backend se conecta por ambos lados; el frontend no se conecta directamente ni con la base de datos ni con los servicios externos.

Es el backend el que se conecta con la base de datos y con los servicios externos, y la pantalla no se conecta con ellos directamente.

El servidor (server: una computadora que permanece encendida y puede aceptar en cualquier momento solicitudes de otras computadoras) donde se ejecutan estos dos es una computadora distinta del dispositivo del usuario.

Solo el cuarto, el servicio externo, no lo desarrollas tú: usas lo que opera otra empresa.

Cuando algo falla, cuál de los dos puedes arreglar
Ocurreun falloFrontendbackend, BDServicio externoPuedes arreglarloEsperas a que otraempresa lo repareBuscas la causa yarreglas el códigoRevisas el estadoy avisas a usuarios
Un mismo suceso a la izquierda se divide en dos ramas. La de arriba la puedes arreglar porque la implementación está en tu lado; la de abajo la opera otra empresa, así que toca esperar. A la derecha, lo que haces en cada caso.

Los tres de la rama superior tienen la implementación en tu lado, así que también eres tú quien los arregla.

La base de datos es un producto que eliges y operas, pero cuando deja de funcionar es tu lado el que interviene.

Solo el servicio externo no lo puedes arreglar tú cuando falla, y te toca esperar a que otra empresa lo restablezca.

Decidir qué delegas es también decidir qué no vas a poder arreglar tú.

Cuatro componentes, un límite

Una aplicación web se divide en cuatro: frontend, backend, base de datos y servicios externos.

Los tres primeros los desarrollas tú y solo en los servicios externos usas funciones que opera otra empresa, así que quién aporta la implementación y quién responde ante un fallo cambian en este límite.

Los servicios externos no los desarrollas tú: los usas mediante API

Las funciones que cuesta mucho preparar por tu cuenta, como enviar correos de confirmación o cobrar pagos, se delegan en servicios externos.

Las reglas que sigues al llamar a un servicio externo son la API (Application Programming Interface: las reglas acordadas para que los programas intercambien datos entre sí).

Aunque lo delegues en un servicio externo, los dos extremos siguen siendo tuyos
Armas destinatarioy cuerpoPides el envíopor la APIEl servicio envíael correoRecibes y registrasel resultadoTu parteTu parteParte delservicio externoTu parteDecides quése envíaLo escribes enel formato fijadoSistema de envío ytasa de entregaCompruebas sise pudo enviar
La fila superior es el recorrido hasta que se envía el correo de confirmación. Solo los dos del centro corresponden al servicio externo; el de más a la izquierda y el de más a la derecha se quedan en tu lado.

Al servicio externo solo pasa la parte central: pedir y comprobar se quedan en tu lado.

En tu lado solo quedan el punto en que mandas la solicitud y el punto en que compruebas el resultado que vuelve.

Si lo desarrollas tú, además de la función en sí, mantenerla también pasa a ser tarea tuya.

Aunque lo delegues, mandar la solicitud y comprobar el resultado siguen siendo tuyos.

Lo único que pasa al servicio externo es la implementación.

Servicio externo y API externa

A veces se escriben por separado: servicio externo para aquello a lo que llamas y API externa para el punto por el que lo llamas.

Señalan lo mismo, y la diferencia está en si lo miras como servicio o como punto de llamada.

El éxito o el fallo se decide de forma independiente en cada componente

Una misma acción puede abarcar varios componentes.

Que la reserva quede confirmada lo decide la escritura en la base de datos, y que salga el correo de confirmación lo decide la solicitud al servicio externo.

La reserva queda confirmada en el momento en que se escribe en la base de datos.

El envío del correo de confirmación viene después, como una solicitud aparte al servicio externo.

Aunque el correo no llegue, la reserva confirmada permanece.

Esta separación te sirve tal cual para investigar un fallo.

«No aparece la reserva» y «no llega el correo de confirmación» te llevan a componentes distintos.

En el primer caso revisas el backend y la base de datos, y en el segundo la solicitud al servicio externo.

Con una misma reserva, el síntoma cambia el componente que revisas
Una operaciónde reserva«No aparecela reserva»«No llega elcorreo»¿Lo recibióel backend?¿Llegó la solicitudal servicio?¿Se escribió enla base de datos?¿El serviciopudo enviarlo?
En el centro está una operación de reserva. La rama de arriba y la de abajo se resuelven por separado, así que un síntoma distinto te lleva a otro sitio.

La rama de arriba es la confirmación y la de abajo el aviso, y si una falla, la otra se queda tal cual.

El éxito se decide componente a componente

Cuando una acción abarca varios componentes, el éxito y el fallo no se deciden en bloque.

La reserva queda confirmada con la escritura en la base de datos y el correo de confirmación lo decide la solicitud al servicio externo, así que, ante un aviso de fallo, primero separa cuál de los dos procesos falló.

QUIZ

Verificación de conocimientos

Responde cada pregunta una a una.

Pregunta 1¿Cuál de los cuatro componentes de una aplicación web usas en lugar de desarrollarlo tú?

Pregunta 2¿Qué pasa si el correo de confirmación no llega después de que la reserva se haya escrito en la base de datos?

Pregunta 3Cuando delegas el envío del correo de confirmación en un servicio externo, ¿qué se queda en tu lado?