Complexity tradeoffs with GraphQL and BFFs: What MVC can teach us [infographic]
Upcoming technologies like React Server Components has led to a resurgence of interest in backend architectures. What exactly belongs in this layer, and how does it fit in the stack?
Enterprises that have for ages used data-bus like patterns now see that similar patterns can ease supporting multiple frontend applications or Backend for Frontends (BFF) by building out a Backend for Data (BFD), or capability based API.
GraphQL makes an appearance as well, being ideally suited for data integration tasks.
Here's a look at how a backend stack can evolve from a simple monolith, through microservices, and then to GraphQL based data layers.
Every good architect knows that complexity is the enemy. To an outsider, building decoupled systems can look counterintuitive, yet these architectures actually help scale complexity and teams.
Keeping in mind the tradeoffs that each pattern or technology exposes is a good way to stay grounded, and introduce patterns in a manner that yields maximum impact.
We've seen the how backend stacks can evolve. The next post will touch on the frontend, and the pressures that lead to different decisions there.