Finding good Software Architecture books in the market is though, specifically for an evolving programing language such as Go, to my surprise Hands-On Software Architecture with Golang delivers relevant content that helps you get an idea about what is like to using Go for designing and implementing scalable Software Architectures.
Hands-On Software Architecture with Golang touches a little bit of everything related to Software Architecture: Software Design, Design Patterns, Scalability Considerations, Messaging, Serialization and Database Design, just to mention a few.
The key differentiator in this book is the concrete Go content included with the topic being covered, it explains the subject and a concrete Go library/program is referenced, for example in the case of Kafka sarama appears, when talking about ElasticSearch elastic is mentioned, when talking about Hystrix hystrix-go is linked, just to mentioned a few.
That’s why I initially mentioned Hands-On Software Architecture with Golang is useful regarding giving you an idea about Software Architecture with Go, because although you may be familiar with all those technologies already, having concrete implementations of those libraries is a great way to determine how feasible is the system you’re trying to build.
One more important thing in this book is the mention of go kit (and therefore Microservices, Domain Driven Design and Bounded Context), which I personally find the most important thing when using Go as a Software Architecture, to keep the code idiomatic.
Hands-On Software Architecture with Golang is a must for Go Software Architects, also kind of relevant don’t forget to watch Brian’s talk Bringing Go to the Enterprise.
Verdict Buy it!