Conclusión
En este libro no había ningún secreto. Una API pequeña, un proveedor, y el mismo puñado de decisiones tomadas una vez y aplicadas en todas partes.
Valida en la frontera. Deja que un Resource decida lo que sale. Pon al proveedor detrás de una interfaz y dale datos tipados que devolver. Autentica con lo que trae el framework, y di en cada controlador quién puede llamarlo. Decide con qué se encuentra una petición al entrar, una vez, en middleware. Renderiza cada fallo en un solo lugar, y haz que sea seguro intentarlo otra vez. Mide antes de afinar. Da por hecho que todo job se ejecutará dos veces, y que una tarea programada puede detenerse sin avisarte. Prueba lo que ve el consumidor, y al llamante que debe ser rechazado. Registra lo suficiente para reconstruir un fallo que no puedes reproducir. Dale al equipo herramientas que concuerden entre sí. Describe la API a partir del código, y cámbiala sin romperles nada a quienes la llaman. Ten claro qué conservas y durante cuánto tiempo. Añade lo que piden los consumidores cuando la versión simple haya fallado, y no antes. Repasa el conjunto y busca el único controlador que nadie cerró. Entrega de una manera que nadie note. Y cuando un servicio se convierta en varios, dale a cada proveedor externo un único dueño.
Nada de eso es ingenioso, y ese era el argumento desde la primera página. Cada vez que eché mano de algo propio en este código (una clase de respuesta, un bucle de reintentos, un intérprete para una cabecera, una capa para un segundo proveedor que nunca llegó), resultó que Laravel ya lo tenía, o resultó que yo no lo necesitaba. Algunas de esas cosas siguen en el servicio en producción del que sale este libro, a la espera de la tarde que lleva borrarlas. Las partes de esta API que son mías son las que tratan de licencias. Todo lo demás es el framework, usado como se pensó que se usara.
Eso es lo que le permite a un equipo entregar rápido y seguir entregando. No una arquitectura mejor que la de los demás. Un número menor de decisiones, tomadas a propósito, que nadie tiene que volver a tomar.
Construye algo aburrido. Y entrégalo.