Skip to content
DevMeme
5567 of 7590
Monorepo Megacorps vs. Multi-Repo Cargo Cults
VersionControl Post #6109 · source on Telegram

Monorepo Megacorps vs. Multi-Repo Cargo Cults

Description

This is a two-panel meme in the 'Chad Wojak vs. Crying Wojak' format, comparing code repository strategies. The top panel, titled 'Repos at Megacorporations', features three muscular, confident Chad Wojak characters. They represent large tech entities (Microsoft, Google, and the Linux kernel project) and advocate for monorepos (a single repository for all code), citing benefits like needing only one pull request for changes and making life easy for developers. For example, one says, 'We put all 2 billion lines of our webservices in a single repo to make life easy for developers.' The bottom panel, titled 'Repos at small, cargo culting companies', shows four drooling, intellectually inferior Wojak characters in absurd situations (one has a computer for a head, another has its brain microwaved). These characters represent the misguided arguments for a multi-repo (many small repositories) approach, such as 'Every library and executable should have its own repo for scalability' and 'Changing one thing needs PRs into 5 repos with 2 approvals each.' This meme satirizes the heated debate between monorepo and multi-repo architectures. It strongly sides with the monorepo approach as a sign of strength and intelligence, while portraying the multi-repo strategy, especially when adopted without good reason ('cargo culting'), as a source of immense pain, inefficiency, and self-inflicted complexity

Comments

37
Anonymous ★ Top Pick That startup's architecture is a classic case of cargo culting: they built a perfect replica of Netflix's multi-repo runway, but they're still trying to get a paper airplane off the ground
  1. Anonymous ★ Top Pick

    That startup's architecture is a classic case of cargo culting: they built a perfect replica of Netflix's multi-repo runway, but they're still trying to get a paper airplane off the ground

  2. Anonymous

    Funny how the same CTO who panics over a 3 GB clone thinks five cross-repo PRs and an org-wide semver cascade are “low latency architecture.”

  3. Anonymous

    The real monorepo was the 47 microservices we created along the way, each with their own CI/CD pipeline, Kubernetes manifests, and that one developer who insists their service needs a different Node version

  4. Anonymous

    The real irony here is that companies with 50 developers cargo-cult the repository strategies of organizations managing billions of lines of code, then wonder why their 'microservices architecture' requires 47 PRs, 3 sprint cycles, and a sacrifice to the CI/CD gods just to change a single API response field. Meanwhile, Google engineers casually submit changes affecting millions of lines with one PR because they actually built the tooling to make monorepos work at scale - something your startup definitely doesn't have the resources to replicate, no matter how many Medium articles you've read about 'enterprise-grade architecture.'

  5. Anonymous

    Megacorps: one repo rules them all. Startups: one unversioned lib wrecks them all

  6. Anonymous

    Pick your poison: O(1) PR in a monorepo or O(n) calendar invites per service - at scale, coupling moves from code to change management

  7. Anonymous

    Everyone wants "Google‑scale" until 12 services require 40 cross‑repo semver bumps and two approvals each - monorepos aren’t dogma, they’re how you ship atomic changes without running a human Raft cluster

  8. @sylfn 2y

    webp in telegram: don't

    1. @sankyago 2y

      webp in tg = sticker

      1. @sylfn 2y

        and that's the problem

      2. @deerspangle 2y

        Which continues to be a baffling design decision on their part

        1. @ZgGPuo8dZef58K6hxxGVj3Z2 2y

          You are right, nobody ever should use webp

          1. @deerspangle 2y

            :( That's not what I said... Applications should stop handling webp in such stupid ways

    2. @ZgGPuo8dZef58K6hxxGVj3Z2 2y

      Only if resolution is right no?

      1. @sylfn 2y

        tgx refuses to enlarge

        1. @ZgGPuo8dZef58K6hxxGVj3Z2 2y

          Weird

  9. @deadgnom32 2y

    wanted to do the same

  10. @sylfn 2y

    *updated image

    1. @sylfn 2y

      ffmpeg -i softwarearchitectsaretherootofallevil-v0-ly6boo5f4dcd1.webp softwarearchitectsaretherootofallevil-v0-ly6boo5f4dcd1.webp.png

      1. @purplesyringa 2y

        convert...

        1. @sylfn 2y

          no

          1. @sylfn 2y

            i will use ffmpeg for everything

            1. @Agent1378 2y

              https://youtu.be/9kaIXkImCAM?feature=shared

              1. @ZgGPuo8dZef58K6hxxGVj3Z2 2y

                Classic

              2. @sylfn 2y

                literally me lmao

              3. @purplesyringa 2y

                This is literally her

              4. @sylfn 2y

                https://ffmpeg.org/ffmpeg-filters.html#ocr This is how OCR is done with ffmpeg

                1. @sylfn 2y

                  Also, you can use man ffmpeg-all to see all docs in one place

                  1. @sylfn 2y

                    50k lines of manual pages 🥰

        2. @AmindaEU 2y

          Deprecated

          1. @sylfn 2y

            what...

            1. @AmindaEU 2y

              At least Fedora 40, when running convert, throws a warning about it being deprecated and tells you to use magick instead

          2. @purplesyringa 2y

            yeah, i don't care

            1. @AmindaEU 2y

              🐾

      2. @kiraventom 2y

        You can convert images via ffmpeg? The more you know

        1. @ZgGPuo8dZef58K6hxxGVj3Z2 2y

          Ffmpeg is one of the most bloated pice of project

  11. dev_meme 2y

    Your eyes must hurt now 😢

Use J and K for navigation