• justcallmelarry@lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    12
    ·
    7 months ago

    Tbh mostly microservices solves two issues for me:

    1. You can scale resource-heavy operations without an impact of scaling everything else.
    2. You kind of ”force” people to keep things contained, instead of making everything interdependant. Which helps containing issues with updates to certain functionality to only have an impact on that functionality.

    You could do #2 in a ”monolithic” setup as well (by doing modules or libraries or something), it just never works out that way in practice

    • listless@lemmy.cringecollective.ioOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      7 months ago

      Let’s say there is a user lmicroservice. I’m on a UI team. I don’t get to tell the user service team what, or when, to implement any features.

      I’m tasked with making a page displaying all the users who have a birthday this month.

      User API service can only search by user id, email, display name, or nickname.

      Now instead of just querying the goddamn database, a one line fucking SQL statement, I have to deal with the user team, getting them to first off even admit that my use case is valid, convince them to work on the feature, coordinate with them to make sure the query works, sorts the data the way I need, etc, et. al, blah blah blah.

      They already have the next 3 sprints full so I’m sitting on my ass for the next month before I can test.

      Meanwhile they decide they’re gonna implement a super generic thing, and so despite me working on code that we talked about using an interface we talked about, they implement something else so i have to throw out half my work anyway.

      Then when I finally start using it I find, oh, it doesn’t support a sort, only returns 100 results max with no pagination, so if there’s 200 this month with a birthday fuck the 2nd hundred they don’t show up because they’re implementing bare minimum and the rest is slated for another sprint.

      And it was then, your Honor, I grabbed the lead dev for the user microservice and tossed him off the 9th story of the building.

      /sarcasm

      • Akisamb@programming.dev
        link
        fedilink
        arrow-up
        6
        ·
        7 months ago

        Now instead of just querying the goddamn database, a one line fucking SQL statement, I have to deal with the user team

        Exactly, you understand very well the purpose of microservices. You can submit a patch if you need that feature now.

        Funnily enough I’m the technical lead of the team that handles the user service in an insurance company.

        Due to direct access to our data without consulting us, we’re getting legal issues as people were using addresses to guess where people lived instead of using our endpoints.

        I guess some people really hate the validation that service layers have.

      • justcallmelarry@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        3
        ·
        7 months ago

        I know you wrote /s, but this has basically nothing to do with the tech of microservices, and more to do with internal politics.

        Switch the ”user microservice” to ”birth date is not indexed in the database and i have to reach out to the database handling team” and you are in the same situation

        • NigelFrobisher
          link
          fedilink
          arrow-up
          1
          ·
          7 months ago

          True, but the microservice concept was introduced to perform a kind of reverse-Conway Manoeuvre and make the architecture fit the team topology. Whether this has ever worked is still unclear to me, but I’ve seen it not work a few times now.