|
|
|
|
|
by davidsergey
803 days ago
|
|
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. |
|
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.