
Monolith
There has been tremendous amounts of time being spent on creating microservices, though is this the place to start?
It is not a trick question, of course not. It is best to start with a monolith and transition to microservices when needed.
Background
After many years of seeing distributed monoliths. This could potentially be a compromise.
Why a service?
This project allows us to use a mono repository approach to build connected services.
Server
This no different to the other services we are built, they just contain it all together.
API
The api are where we define out protobuf services.
Servers
All the servers are defined in a usual way.
Each of the services talks to each other via a client. As all of this is running through localhost.
Each service is reachable by defining REST endpoints.
Health
The system defines a way to monitor all of it's dependencies.
To configure we just need the have the following configuration:
health:
duration: 1s (how often to check)
timeout: 1s (when we should timeout the check)
Other Systems
gRPC-Gateway works in a similar way.
Development
If you would like to contribute, here is how you can get started.
Structure
The project follows the structure in golang-standards/project-layout.
Dependencies
Please make sure that you have the following installed:
Style
This project favours the Uber Go Style Guide
Setup
Check out CI.
Changes
To see what has changed, please have a look at CHANGELOG.md