• THCDenton@lemmy.world
    link
    fedilink
    arrow-up
    37
    arrow-down
    1
    ·
    5 months ago

    Dude just start with a monolith and part it out as you scale. Of course microservices are a waste of time if you build them right off the bat.

    • fidodo@lemmy.world
      link
      fedilink
      English
      arrow-up
      20
      ·
      5 months ago

      It’s just not worth it until your monolith reaches a certain size and complexity. Micro services always require more maintenance, devops, tooling, artifact registries, version syncing, etc. Monoliths eventually reach a point where they are so complicated that it becomes worth it to split it up and are worth the extra overhead of micro services, but that takes a while to get there, and a company will be pretty successful by the time they reach that scale.

      The main reason monoliths get a bad rap is because a lot of those projects are just poorly structured and designed. Following the micro service pattern doesn’t guarantee a cleaner project across the entire stack and IMO a poorly designed micro service architecture is harder to maintain than a poorly designed monolith because you have wildly out of sync projects that are all implemented slightly differently making bugs harder to find and fix and deployments harder to coordinate.

      • AggressivelyPassive@feddit.de
        link
        fedilink
        arrow-up
        12
        ·
        5 months ago

        I still have to find a name for this disease, but it’s somewhat like “you’re neither Google nor Netflix”.

        Everything has to be Scalable™ even if a raspberry pi could serve 200 times your highest load.

        I’m currently involved with a “micro service system”, that has very clear, legal requirements, so we know exactly, how much load to expect. At most, a few thousand users, never more than 100 working at the same time on very simple business objects. Complex business logic, but technically almost trivial. But we have to use a super distributed architecture for scalability…