5 ms·
That assumes the network is always good and services are up. Welcome back to eventual consistency (or none at all)
by Xorlev 12y ago
That assumes the network is always good and services are up. Welcome back to eventual consistency (or none at all)
- threeseed 12y agoIf the network is bad then your monolithic app wouldn't work either. The problem of services being up/down has been solved with service discovery e.g. Consul, Etcd, Zookeeper.
- saryant 12y agoThat has nothing to do with the fact that if your systems are distributed, you will have eventual consistency. If System A needs to tell System B about an event in order for A and B to remain consistent, but B is down, you've got eventual consistency, because B can't become consistent with A until it's back up and has performed whatever recovery is necessary to process that event. Service discovery does nothing to solve that problem.
- Xorlev 12y agoWhat @saryant said. In addition, the network isn't just up or down. It's varying shades (dare I say, 50 shades?) of down or broken. A single machine might not be accessible due to a switch issue. An entire rack or aisle might be compromised by a bad router or faulty routing table. A network cable might be flaky. The truth is you just don't know, and that's all inside a single LAN. Your service discovery system could be able to see service {A,B,C}, but service A can't talk to B or C due to network issues. It happens. http://www.rgoarchitects.com/Files/fallacies.pdf http://www.rgoarchitects.com/Files/fallacies.pdf