Why We Create Distributed Web Apps


Often I have asked myself why we often create distributed web apps, with a separated and dedicated frontend (FE) and backend (BE).

I have come to believe that we choose this architecture more often than is necessary or helpful.

Here are some of the reasons we choose it.

Enable Our Organization

We want to work a certain way. Social reasons. We expose our org structure in the architecture.

Managers want smaller, independent teams, deploying as much as possible. Engineers on those teams want to complete their work with minimal coordination with anyone. So we create a jillion repos, each with their own build pipeline and deployments. We create network-facing contracts, version them or otherwise deal with ongoing compatibility issues. We hire a separate infrastructure team or buy a platform as a service.

We want to be able to