Monorepo readings and thoughts semi-consolidated
27-02-2025
Goals:
- reduce duplication (ie scaffolding, boilerplate, configuration)
- simplified dependency management and packaging
- increase developer productivity
- reduce context shifting / cognitive load
Blog posts:
- Opendoor
- https://medium.com/opendoor-labs/our-python-monorepo-d34028f2b6fa
- package structure, editable installs, CI/CD, builds + releases
- https://gist.github.com/dan-hipschman/070318806610727f17b2d6616ceaa4cc
- generates TOML file, converting local dependencies to versioned dependencies
- https://medium.com/opendoor-labs/our-python-monorepo-d34028f2b6fa
- Tweag
- Airbnb
- Uber
- https://www.youtube.com/watch?v=lV8-1S28ycM
- monorepo
- good; faster IDE, mercurial, submit queue, buck instead of gradle
- bad; IDE lag, git slowdown, broken master, long build times
- multirepo
- good; strong ownership, fast build times, separate git repos
- bad; silos, functionality duplication, dependency hell
- monorepo
- https://www.youtube.com/watch?v=lV8-1S28ycM
Examples:
- https://github.com/carderne/postmodern-mono
- https://github.com/dermidgen/python-monorepo/tree/master
- https://github.com/charbonnierg/repo/tree/next
Tools:
- python
- build tools
- distribution
- Github
Misc:
- https://twitter.com/jasoncwarner/status/1592227285024636928
- past CTO of GitHub / Heroku
- monolith > apps > services > microservices
- think of code as debt, and services as an extreme form of debt