Summary
In this chapter, we reviewed common distributed system challenges and solutions, such as distributed locking, leader election, and distributed transactions. You learned about common protocols for establishing consensus in distributed systems, some of their limitations, as well as popular tools for implementing distributed system scenarios in your microservices. At the end of the chapter, we reviewed some of the best practices for working with distributed system tools in Go microservices.
In the next chapter, we are going to cover a broad range of other advanced topics of Go microservice development, which should solidify your skills and prepare you for solving lots of interesting real-world microservice development challenges.