A few years ago, we started our journey on breaking monolith applications down to microservices because we want to scale up quickly and monolithic systems are just too large to deal with. A part of that was to choose a programming language. We went with Go lang which is syntactically similar to C and has become a popular language used in developing microservices for it’s efficiency and testability in a distributed system.
Another part was to design and develop the microservices following best practices. We came across GOA Design, which is a tool that generates your microservice code such as the server & client code, test code and it’s documentation. It gave us that clean, well structured and consistent way of writing microservices and eliminates writing repetitive sections of the code. It allows you to focus on designing your API through Domain Specific Language (GO language DSL).