> ## Documentation Index
> Fetch the complete documentation index at: https://aspect.build/llms.txt
> Use this file to discover all available pages before exploring further.

# Metaphor: village to city

> The municipal-services metaphor for Bazel monorepos - polyrepo villages versus a city where a small DevInfra team operates shared plumbing for all engineers.

You can imagine developers in a polyrepo setup. Each team maintains their own build and test setup.
This is like villagers, taking their laptops to the well to draw water.
At their scale, this is fine.

<img src="https://mintcdn.com/aspectbuild/gtqBKXWWd-jWHweY/learning/bazel-203/village.png?fit=max&auto=format&n=gtqBKXWWd-jWHweY&q=85&s=ae2d162b74088e3eaef875e56b4800f9" alt="village.png" width="1024" height="1024" data-path="learning/bazel-203/village.png" />

The monorepo is a big city. You can't have engineers spending time walking to a well!
They should expect a faucet in their apartment, and water just comes out of it.

Except, there's actually a small team of municipal water supply engineers in the city.
There's a lot of work required to keep the plumbing working for everyone.

<img src="https://mintcdn.com/aspectbuild/gtqBKXWWd-jWHweY/learning/bazel-203/city.png?fit=max&auto=format&n=gtqBKXWWd-jWHweY&q=85&s=0a763bb164163d767386321802ba34d2" alt="city.png" width="1024" height="1024" data-path="learning/bazel-203/city.png" />

These people are motivated by the value of the work they do, even though their effort is rarely
recognized. Except when things go wrong, and the faucet has no water or the water is polluted.

This is a pretty good metaphor for a Developer Infrastructure team.
Product engineers won't notice that work is required to maintain the services that keep them
productive in the metropolis that is a monorepo.
