Go is a lovely little language that's perfectly suited to writing microservices. Go kit fills in the gaps left by the otherwise excellent standard library, giving your team the confidence to adopt Go throughout your stack.
Adopting microservices means building a distributed system, and that comes with a lot of challenges. Go kit provides guidance and solutions for most of the common operational and infrastructural concerns. Allowing you to focus your mental energy on your business.
You know your domain and context better than anyone. Go kit is lightly opinionated, and was designed for interoperability from day one. Use the databases, components, platform, and architecture that works best for you.
Finagle • Dropwizard • Spring Boot • Netflix Eureka · Ribbon · Hystrix • Nameko
Kubernetes • Mesos • Marathon • DC/OS • Docker • Docker Swarm • Heroku
Go is designed from first principles to advance the practice of software engineering. It's easy to learn, easy to master, and — most importantly — easy to maintain, by large and dynamic teams of engineers. And with highly-efficient concurrency, an expansive standard library, and a steadily-improving runtime, it's practically the perfect language for writing microservices.
Almost all of contemporary software engineering is focused on the singular goal of improving time-to-market. Microservices are an evolution of the service-oriented architecture pattern that elegantly eliminate organizational friction, giving your engineers and teams the autonomy they need to continuously ship, iterate, and improve.
Go is a great general-purpose language, but microservices require a certain amount of specialized support. RPC safety, system observability, infrastructure integration, even program design — Go kit fills in the gaps left by the standard library, and makes Go a first-class language for writing microservices in any organization.