— Keep learning, keep building and keep growing :)

Summary

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.

What is it?

The backends-for-frontends architectural pattern describes a world in which each client application has its own server-side component — a _backend _for a particular frontend.

This pattern is highly applicable if you have multiple client interfaces with significantly different needs that all consume the same underlying resources. The most common real-world example is an application that has both a web and a mobile client.

To understand why backends-for-frontends is useful, let’s walk through some evolutions in web architecture.

Multiple clients with a single general-purpose server

Simplicity is great, right? Actually, it is…but only up to a point. If your application is small enough this architecture can absolutely work! However, monoliths tend to break down with scale. You might hear your teams start to say things like…

  • Our server is so bloated! Client-specific control flow is littered everywhere and we are struggling to add features without introducing side effects.
  • I can’t commit any changes without merge conflicts. There are N teams changing this exact piece of code; some that we barely talk to!
  • Builds and tests are taking forever to run and it’s going to take us days to debug that one intermittent test failure.

These types of problems catalyzed the rise of microservices.

#micro-frontends #bff #frontends #backends

Backends For Frontends — BFF
1.50 GEEK