Skip to content
DevMeme
5567 of 7435
Monorepo Megacorps vs. Multi-Repo Cargo Cults
VersionControl Post #6109, on Jul 14, 2024 in TG

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 1y

    webp in telegram: don't

    1. @sankyago 1y

      webp in tg = sticker

      1. @sylfn 1y

        and that's the problem

      2. @deerspangle 1y

        Which continues to be a baffling design decision on their part

        1. @ZgGPuo8dZef58K6hxxGVj3Z2 1y

          You are right, nobody ever should use webp

          1. @deerspangle 1y

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

    2. @ZgGPuo8dZef58K6hxxGVj3Z2 1y

      Only if resolution is right no?

      1. @sylfn 1y

        tgx refuses to enlarge

        1. @ZgGPuo8dZef58K6hxxGVj3Z2 1y

          Weird

  9. @deadgnom32 1y

    wanted to do the same

  10. @sylfn 1y

    *updated image

    1. @sylfn 1y

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

      1. @purplesyringa 1y

        convert...

        1. @sylfn 1y

          no

          1. @sylfn 1y

            i will use ffmpeg for everything

            1. @Agent1378 1y

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

              1. @ZgGPuo8dZef58K6hxxGVj3Z2 1y

                Classic

              2. @sylfn 1y

                literally me lmao

              3. @purplesyringa 1y

                This is literally her

              4. @sylfn 1y

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

                1. @sylfn 1y

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

                  1. @sylfn 1y

                    50k lines of manual pages 🥰

        2. @AmindaEU 1y

          Deprecated

          1. @sylfn 1y

            what...

            1. @AmindaEU 1y

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

          2. @purplesyringa 1y

            yeah, i don't care

            1. @AmindaEU 1y

              🐾

      2. @kiraventom 1y

        You can convert images via ffmpeg? The more you know

        1. @ZgGPuo8dZef58K6hxxGVj3Z2 1y

          Ffmpeg is one of the most bloated pice of project

  11. dev_meme 1y

    Your eyes must hurt now 😢

Use J and K for navigation