~/talk

Untangling the Monorepo: Moving to Go Modules

Talkat GopherCon 2020 · 2020-11-09..11-13· [software-architecture]
links:none on file
links:none on file
slides:none on file

CrowdStrike untangles a nearly monolithic repo of ~400 services and libraries by incrementally extracting packages into separate modules, preserving git history with good-filter-repo, analyzing dependencies with the go dependency analysis toolkit, and vendoring converted code back during migration. An internal Athens proxy backed by S3 serves flash-frozen modules (pre-release v0.0.0 tags) while go.mod and go private settings enforce usage. Built tooling (csi, go mod guard) automates conversions; result is smaller dependency graphs, ownership per repo, and noticeably faster CI and builds.

AI-written summary · about

  1. 0:00Intro
  2. 0:55What is Crowdstrike
  3. 2:01Positive and Negative Buzz
  4. 3:37Local Changes
  5. 4:40Crowdstrike
  6. 5:40MultiRepo
  7. 7:16Soft Skills
  8. 8:25Standard Problems
  9. 8:45Decision Time
  10. 9:50Solution Planning
  11. 10:26Dependency Analysis
  12. 11:02Converting to Go Modules
  13. 12:18Old crusty code
  14. 13:55Shiny new tools
  15. 14:22Quick CLI
  16. 15:50Flash Freezing
  17. 16:54Prerelease Tags
  18. 17:27Go Module Proxy
  19. 19:01Vanity URL
  20. 19:36Go Modules Proxy
  21. 22:05Key Takeaways
  22. 23:10Lessons Learned
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.