This document discusses Semantic Versioning (SemVer) and microservices in Go. It begins with an introduction to microservices and the problem of breaking changes between services. It then covers SemVer, including the rules for major, minor and patch versions. It discusses what constitutes breaking changes in Go and tips for avoiding breakages. Finally, it discusses version constraints, and dependency management tools for Go like Glide and Dep, which help define and lock dependencies between services.