https://github.com/dmitrymomot/go-smart-monolith
This is an example of a monolithic application built ready for microservice architecture.
https://github.com/dmitrymomot/go-smart-monolith
Last synced: 3 months ago
JSON representation
This is an example of a monolithic application built ready for microservice architecture.
- Host: GitHub
- URL: https://github.com/dmitrymomot/go-smart-monolith
- Owner: dmitrymomot
- License: apache-2.0
- Created: 2023-08-22T18:42:27.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-08-23T05:40:32.000Z (almost 2 years ago)
- Last Synced: 2025-01-11T18:30:06.331Z (4 months ago)
- Language: Go
- Size: 1.95 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# go-smart-monolith
[](https://github.com/dmitrymomot/go-smart-monolith/blob/main/LICENSE)
[](https://github.com/dmitrymomot/go-smart-monolith/actions/workflows/tests.yml)
[](https://github.com/dmitrymomot/go-smart-monolith/actions/workflows/codeql-analysis.yml)
[](https://github.com/dmitrymomot/go-smart-monolith/actions/workflows/golangci-lint.yml)
[](https://goreportcard.com/report/github.com/dmitrymomot/go-smart-monolith)This is an example of a monolithic application built ready for microservice architecture.
Each service is built as a separate package and can be easily extracted into a separate repository.## Structure
The application is structured in a way that allows for easy transition to microservices. The application is split into the following parts:

In case you decide to split the application into microservices, you can easily do it:

## Usefull links
- [The Twelve-Factor App](https://12factor.net/)
- [The Clean Architecture](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)
- [Microservices architecture](https://microservices.io/)
- [Microservices test architecture](https://threedots.tech/post/microservices-test-architecture/)
- [Increasing Cohesion in Go with Generic Decorators](https://threedots.tech/post/increasing-cohesion-in-go-with-generic-decorators/)
- [Basic CQRS](https://threedots.tech/post/basic-cqrs-in-go/)
- [Go Project Layout](https://github.com/golang-standards/project-layout)