Skip to content

alexfalkowski/go-monolith

Repository files navigation

CircleCI codecov Go Report Card Go Reference Stability: Active

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

About

A template to have a distributed monolith.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •