News for hackers. Stuff that matters.
Re:Meta Used Monolithic Architecture to Ship Threads in Only... by davidsergey on Wednesday April 10, 2024 @02:43AM (#39987649)
Microservices are risk mitigation. If you know what are you doing - Monolith is optimal way.

We use microservices, because we acknowledge that we don't know how final product would look like, and we mitigate risks associated with adding and removing unknown number of features.

Facebook was creating clone of Twitter, well known product, well known path. There is no need for microservices.

Re:Meta Used Monolithic Architecture to Ship Threads in Only... by The_Colonel on Wednesday April 10, 2024 @02:49AM (#39987690)
I would actually put it exactly the other way round.

If you don't have a crystallized architecture yet, prototyping with a monolith is faster. You don't have to make the cuts (this belongs to this service) which are expensive to change later (unlike moving classes between modules).

Doing internal Java/.NET/whatever interfaces is easier than introducing external API (and associated infrastructure complexity, authorization, routing...), they are much easier to tweak. You have transactions, don't have to deal with a lot of asynchronicity, network overhead etc. For a prototype, I'd always rather do a monolith.

Re:Meta Used Monolithic Architecture to Ship Threads in Only... by boxed on Wednesday April 10, 2024 @02:48AM (#39987682)
How do you lower risks of adding and removing feature if you need to not only need to add/remove the feature but also decide which service it goes in, set up coordination, and manage networks between the services? That's more work, and more surface area.
Re:Meta Used Monolithic Architecture to Ship Threads in Only... by DeathArrow on Wednesday April 10, 2024 @02:52AM (#39987702)
Actually for a big codebase there are always reasons to use microservices: much better scalability, easier to develop using small teams, easier to maintain, the software is more robust.
Re:Meta Used Monolithic Architecture to Ship Threads in Only... by smokel on Wednesday April 10, 2024 @02:55AM (#39987731)
There are even more reasons to use a monolith, or to simply use a service oriented architecture.

Probably not necessary to repeat here, but microservices add a lot of complexity due to asynchronicity, limited interfaces, and more complex error handling.

Re:Meta Used Monolithic Architecture to Ship Threads in Only... by aerhardt on Wednesday April 10, 2024 @02:49AM (#39987685)
I mean, can’t you decouple your modules inside a monolith just as well, if what you’re looking is to mitigate the risk of removing features?
Re:Meta Used Monolithic Architecture to Ship Threads in Only... by temporarely on Wednesday April 10, 2024 @04:31AM (#39988333)
Sorry, but that's just too rich.

If you don't know how to design schemas (extensible, modular, ..) and don't know how to design coherent APIs around that, then yes, go Microservices to mitigate the risk. The risk here being the likely chance that you got the schema wrong and end up hacking around it in your "monolith" [almost always sic].