Yarn Berry's signature ideas are PnP, zero-installs, and constraints. Each one deserves a paragraph.
Plug'n'Play (PnP). Instead of unpacking thousands of packages into node_modules, Yarn keeps them as zip files in .yarn/cache/. When your code does import foo from 'lodash', the generated .pnp.cjs file resolves that import to the exact byte range inside the cached zip. Result: faster installs (no unzipping), faster boot times, and undeclared deps fail loudly because they were never registered in the manifest. Trade-off: tools that don't speak PnP (some IDEs, older bundlers) need an SDK helper.
PnP fallback. If PnP breaks too much of your tooling, set nodeLinker: node-modules in .yarnrc.yml. Yarn switches back to a traditional node_modules layout while keeping the rest of Berry's improvements. You don't have to commit to PnP to use Berry.
Zero-installs. Commit .yarn/cache/ to Git. Now teammates and CI machines need only git clone — no install step. CI install times drop from minutes to seconds. The cost is a bigger Git repo (gigabytes if you have a lot of deps); the win is dramatic CI speedup.
Constraints. A JavaScript-based engine that enforces project-wide rules — every workspace must use the same React version, no package may depend on lodash directly, etc. Define rules in yarn.config.cjs; yarn constraints reports violations. Invaluable for monorepos that have grown beyond one team's heads.