|
Once again, cargo-cultish reasoning, where it's all or nothing. 1/ Replication & read-only copies for resilience exist, to allow you to function in degraded state if your database goes down. 2/ If the database for one service goes down, any service that calls it ends up being down anyways. No, being able to respond with a 503 that says that megatron-service is down and you can't fetch the data isn't different from responding with a regular 500 saying that the database is down and you can't fetch the data.. 3/ All of your calls do not necessarily end up calling the database. Your service starts even if the DB is down, some calls will simply fail. You're providing a degraded service. 4/ If they need similar data, you really don't want to have two databases holding that data. Because I can promise you, the cost of having to handle replication, de-duplication, synchronization, configuration, GDPR compliance, etc on X databases is infinitely higher than having a database where you simply turn on a write replica that fails over. 5/ SPOF-fear is bullshit, you always have a single point of failure in your stuff. 2FA service is down ? Sure, your entire service isn't dead, but hey, users can't log in, sounds like a pretty fucking big point of failure. Microservices just distributes your single point of failure into a dozen, equally bad, equally hard to track down problems. And even in a monolith, you can easily work around these problems: what kind of fucking code have you seen that a whole server will not start because it can't connect to a database ? 6/ You do not need your servers to be distributed. That is bullshit, and if you are at the scale where you actually need to, it'll be the least of your problems. |
Your 3rd point shows scenerio where 2nd point is not applicable.
>what kind of fucking code have you seen that a whole server will not start because it can't connect to a database ?
Server? Idk. App? Sure, CRUD app that requires config/filling cache dictionaries from db
>Once again, cargo-cultish reasoning, where it's all or nothing.
Thats fair point, so what are micro services doing for you then?
Allowing teams to deploy independently?