• by NBJack on 11/7/2024, 2:20:22 PM

    This feels a bit naive. I won't advocate for microservices at all times, but there are additional considerations and caveats

    Sending multiple requests at once is possible through batching if you want to avoid HTTP overhead. This depends on your threading model, but you can make this semi transparent in the client interface if you wish. Alternatively, use a protocol that supports multiplexing of requests on the same connection.

    Libraries don't work well if your services go past two layers. After this, you start nesting things (library in library), and ownership of an update becomes much more "fun", especially in an emergency situation.

    Updates in general with libraries can be easier or harder depending on your deployment model. On one hand, with libraries any tests in your pipeline are going to be more deterministic; you arent as likely to be surprised by behavior in production. On the other, if you have a lengthy deployment process for services and need to plan windows carefully, having a separate underlying service can decouple the process and let you focus on localized changes.

    YMMV.

  • by andrewstuart on 11/7/2024, 11:43:27 AM

    Microservices trade development complexity for operational complexity.

    Write a monolith in Golang with Postgres instead. 99% of ordinary applications would never be able to max out a modern server running this.

    Microservices are an anti pattern for most ordinary application needs.

  • by cainxinth on 11/7/2024, 1:24:27 PM

    The “this meeting should have been an email” of software dev.

  • by makoto12 on 11/7/2024, 11:42:47 AM

    I agree that microservices need to be considered seriously with real engineering thought and not jumped onto to pad CVs. They are a tool just like anything else, and need to be used carefully. Microservices have a particularly sharp edge.

    However libraries feel like a very simplistic argument against microservices. In a world where you have a single monolith, then libraries may work fine, but often you have 2, 3 maybe 4 decently sized monoliths. In that situation libraries may not make much sense when you need to reference a central source of data.