WeGO - the Go Lang In process Service Mesh
WeGO (pronounced as We-GO or V-GO) is an application development framework. It provides you a set of libraries, hooks to other GO LANG libraries, a set of conventions, transport hooks, code generation capabilities and build tools to make the creation of a GOLANG based micro service a cinch.
In its essence, WeGO acts like an in process service mesh.
WeGO is very concerned about the adherence to design tenets such as SOLID principles. Therefore, the best practices recommended by WeGO tend to foster the correct design principles and paradigms.
WeGO facilitates testing and Dependency Injection by providing a command catalog. The command catalog allows hooks to instantiate any command in the system.
WeGO provides a set of client side and server side interception capabilities. These interception “middleware” commands allow capabilities such as circuit breaking, exposing and consuming HTTP transport , Caching, logging, auditing and others.
The chief forte of WeGO is to de-couple the services from transports. Transports can initiate themselves into the framework and start exposing services via different ways such as HTTP.
WeGO is more than a web framework. It integrates various tools such as go-i18n, Uber’s Zap logging framework, New Relic, Viper configuration framework and others. It prescribes rules around using these frameworks.
Error handling is taken care of as well. Internationalized errors are easy to configure and are integrated into the system.
WeGO integrates BDD out of the box with the usage of DataDog.
WeGO has points of view about DevOps, Code Release and versioning.
WeGO is prescriptive about the approach to micro services, organization of code and modularization.
WeGO favors convention over configuration.
WeGO’s code generation capabilities allow developers to generate a WeGO service using minimal specifications.
In short, WeGO is more than a framework. It is a way to write code in GO LANG - code that fosters the correct principles and paradigms. This results in code which is standardized, evolution friendly and highly maintainable.