Backend para frontend: cuando una API simple no es suficiente

La tecnología Backend-for-Frontend simplifica el desarrollo de servicios con los que trabajan simultáneamente muchos clientes diferentes: ordenadores, smartphones y tablets con todos los sistemas operativos posibles.





SoundCloud desarrolló el enfoque Backend-for-Frontend (BFF). El jefe de desarrollo de SoundCloud, Phil Calçado, describió  BFF en 2015  como una etapa evolutiva natural para los productos de TI modernos.





En el pasado, en el mundo analógico, los sistemas corporativos eran utilizados únicamente por las propias empresas. Cuanto más se desarrolló la digitalización y la omnicanalidad, más se desplazó el enfoque de la infraestructura corporativa al exterior. Los clientes comenzaron a comprar productos en línea y desde teléfonos inteligentes, los socios comerciales comenzaron a interactuar con la empresa a través de plataformas web. Se volvió importante para las empresas construir una arquitectura que permitiera tal acceso a los recursos corporativos.





Los desarrolladores comenzaron a crear API para que los servicios de TI de terceros pudieran conectarse a la infraestructura. La desventaja de esta tecnología es que ofrece a todos el mismo conjunto de capacidades. Si necesita limitar la cantidad de tráfico en los teléfonos inteligentes y ofrecer a los usuarios de tabletas su propio método de entrada de datos, pueden comenzar las dificultades.





La tarea de SoundCloud era aún más difícil: la empresa necesitaba integrarse con desarrolladores externos para que pudieran integrar el reproductor en sus sitios. Para hacer esto, la API debe interactuar con cualquier plataforma lista para usar, y con cada actualización, el equipo debe asegurarse de que la revisión no rompa todas estas integraciones. En la práctica, esto no es realista de lograr.





Así es como nació el concepto de Backend-for-Frontend: un servicio liviano que se encuentra más cerca del front-end que del back-end.





Funciones de BFF

La palabra clave es "ligero", la lista de características de la BFF es mucho menor que la de la API:





  • Trabaje con microservicios de productos y reciba datos de ellos.





  • Formatee estos datos para que se procesen correctamente en la interfaz.





  • Envía datos a la interfaz.





BFF: , Android, iOS .. – :





  • API , .





  • , , API.





  • .





BFF – , Netflix  Flickr.  Microsoft  IBM. True Engineering.





BFF

. RabbitMQ, .





API, . , , , . , , BFF, . Rabbit- .





, API. -, Rabbit . BFF Data Provider, . 





, API – BFF , , .  API , – BFF .





, BFF

Un servicio BFF debe ser liviano; esta es su principal diferencia con una API. No es necesario escribir lógica empresarial compleja en el código, crear una base de datos, etc. La comunicación simple debe ser una prioridad.





Como dijimos, un producto puede tener varios servicios BFF para diferentes clientes. Inevitablemente se duplicarán entre sí en alguna parte, pero debe asegurarse de que esto no vaya más allá de lo razonable, de lo contrario, gastará recursos adicionales para apoyarlos.





Debe comprender que BFF es algo así como un traductor entre el backend y el frontend. Por lo tanto, la seguridad, la tolerancia a fallas y el monitoreo deben construirse adicionalmente.








All Articles