Distributed system best practices
In this section, we are going to briefly review some of the best practices dealing with distributed system tools and solutions in microservice development. As with any technology, distributed system tooling comes at a cost, and it is important to understand the trade-offs when designing your microservice applications.
Build systems with minimal necessary coordination between components
Earlier in the chapter, we discussed some possible challenges and limitations of building consensus-based mechanisms for microservice applications. Each of the popular consensus protocols, such as Paxos and Raft, involves a lot of communication between system nodes, as well as adding extra complexity to the overall system. Like a group of people trying to reach a consensus, a distributed system might be prone to communication failures, as well as taking a much longer time to get to the consensus state.
When designing your systems, you should always ask yourself...