EGO Project Generator
Ego Framework is a minimalistic opinionated framework for developing microservices in GO.
Although being an opinionated framework, it still highly extensible and allows you to plug in your own implementations for various components. The framework is heavily inspired by go-micro. The framework is split into modules and does not bloat the codebase so that you import only the minimal required components for your microservice.
It comes with a generator project to get you started very quickly. It uses GRPC + Protobuf + NATS + Kubenetes + Skaffold + Echo
This is the Yeoman Generator for Ego Framework
USAGE
npm install yeoman-generator -g
npm install generator-go-ego -g
yo go-ego
Project Dependencies Setup
- install skaffold
- install kubernetes/minikube
- install Docker
- install MongoDB
- install Nats
- run protoc to generate service stubs (optional)
It containerizes the services and runs it in kubernetes. It creates a http application server and an internal grpc server.
- Each service has a http application server and 4 microservice components
- GRPC Clients
- GRPC Handlers (Server)
- Publishers
- Subscribers
Also possible to use Nginx as a reverse proxy using
nginx -c nginx.dev.conf
nginx -c nginx.prod.conf
Dev Mode
Watches code changes, containerizes and deploys the service to kubernetes cluster
skaffold dev
Prod Mode
Builds the release build of the service and deploys the service to kubernetes cluster
skaffold run