3 ms·
You're right -- getting _everything_ right out of the gate is impossible. > You layer on fixes, and the system develops more complex edge cases, and more subtl
by jroseattle 10y ago
You're right -- getting _everything_ right out of the gate is impossible.
> You layer on fixes, and the system develops more complex edge cases, and more subtle bugs.
"Accounting for" != implementing to address.
Failure is expected in distributed systems. If your architecture allows no room to address future failure, that's the problem.
- btilly 10y agoFailure is not only expected in distributed systems, it is mathematically impossible to avoid. The best that you can do is document your failure modes and what guarantees you will provide despite that. Unfortunately, as aphyr proves over and over again, is that the guarantees we are given for how distributed software is supposed to work don't hold. Over and over again, across virtually every piece of well-known distributed piece of software. And my experience is that in house software is at least an order of magnitude worse. However you think your software will work, it doesn't.