A Backend for Frontend (BFF) architecture can be used to create backends for client-facing mobile or web apps. BFF’s can help support an application with multiple clients while at the same time moving the system into a less-coupled state than a monolith system. This code pattern helps teams iterate features faster and have control over the backends for mobile apps without affecting the experience for a corresponding mobile or web app.

Description

A microservice architecture allows teams to iterate quickly and to develop technology to scale rapidly. The Backend for Frontend (BFF) architecture is a type of pattern built with microservices. The key component of this pattern is an application that connects the front-end of your application with the backend. This BFF Code Pattern will help you build that component according to IBM’s best practices.
This code pattern will help you:
  • Build out the Backend for Frontend (BFF) architecture pattern
  • Generate an application in Node.js, Swift or Java
  • Generate an application with files for deploying to Kubernetes, Cloud Foundry or a DevOps Pipeline
  • Generate an application with files for monitoring and distributed trace
  • Connect to provisioned services
This code pattern also makes it easy to follow a Cloud Native programming model that uses IBM’s best practices for BFF app development. You’ll see things like test cases, health check, and metrics in each programming language.
If you click on Build on IBM Cloud at the top of the Code Pattern, you’ll be able to dynamically provision Cloud services. Those services will be automatically initialized in your generated application. Add a managed MongoDB service, a Watson service, or automatic tests in a customized DevOps pipeline.

Flow


  1. User experience platforms like Mobile and Web Apps, which can be supported in languages such as Node.js, Java, or Swift, communicate to their own backend for frontend server, in order to gather the appropriate APIs and service requests needed.
  2. Each Backend for Frontend calls upon the necessary services that are requested by the frontend.

Instructions

See the detailed instructions in the README files: