Connaissez-vous le Backend For Frontend ?

Deux développeurs échangeant devant un ordinateur portable

Le BFF (Backend For Frontend) est un pattern de conception dont on trouve des traces il y a déjà une dizaine d’années. Cependant, il reste encore confidentiel. Dans cet article, on vous parle de tout ce qu’il y a à savoir sur le sujet. On vous donne aussi nos conseils pour faire de ce pattern votre meilleur ami (BFF en anglais 😎) 

Cas d’utilisation du Backend For Frontend

Vous êtes responsable d’une architecture ayant plusieurs devices (Web/Mobile) ou exposez des APIs a plusieurs services tierces ? 

L’architecture cible standard/naïve est la mise en place d’une API générale qui mutualise les besoins. La mutualisation est une bonne chose, encore faut-il ne pas le faire trop tôt. Prenons le cas de deux interfaces utilisateurs : une en web et l’autre en mobile, les deux se veulent très similaire. Cependant, une interface mobile repose sur un écran plus petit par définition. De plus, la limitation du nombre de connexions et l’optimisation de la bande passante imposent de limiter les données.  

Un second point est qu’une API générale est le Single Point of Failure et un point d’étranglement pour les mises à jour. Le Backend For Frontend peut répondre à cette problématique :

Schéma d'architecture avec une API générale pour les équipes mobile et web

Définition du Backend For Frontend

L’architecture BFF est fortement couplée à l’expérience utilisateur. De manière générale chaque API est maintenue par la même équipe que celle de l’interface utilisateur. Cela permet d’adapter l’API au besoin de l’IHM et réduit l’adhérence du delivery. 

Schéma du pattern Backend For Frontend avec un BFF mobile et un BFF ordinateur

Alors faut-il un BFF par type de device (Android/Apple) ? Nous vous conseillons d’en faire autant par équipe. 

Pitfall (les pièges à éviter)

Attention à l’utilisation du « reuse ». La multi-utilisation est toujours attirante. Mais si vous constatez une trop grosse similarité de code dans le flux de données, et que celle-ci est hautement localisée, vous venez peut-être de découvrir un découpage en service de votre application ! Évidemment, il n’y a pas de recette miracle et il faut savoir prendre des décisions. Si vous sentez que votre API a trop de paramètres, il faut savoir revenir en arrière. 

Le Backend For Frontend est une solution (mais sans être un silver bullet), pour diminuer la friction sur le delivery d’application ayant plusieurs IHM (plusieurs devices). Cela va certes à l’encontre de la croyance générale sur la factorisation du code. Pourtant, cette solution vous permettra d’améliorer votre time to market et de réduire les conflits entre les équipes. 

vous voulez faire appel

à nos expertises ?

cet article vous a plu ?

Découvrez-en d'autres juste ici :