{"repo":"powerman/go-monolith-example","free":true,"listed":false,"github":"https://github.com/powerman/go-monolith-example","clone":"git clone https://github.com/powerman/go-monolith-example.git","description":"Example Go monolith with embedded microservices and The Clean Architecture","language":"Go","stars":352,"topics":["monolith","embedded-microservices","microservices","go","golang","clean-architecture","clean-code","architecture"],"license":"MIT","category":"dev-tools","readme_excerpt":"Example Go monolith with embedded microservices and The Clean Architecture This project shows an example of how to implement monolith with embedded microservices (a.k.a. modular monolith). This way you'll get many upsides of monorepo without it complexity and at same time most of upsides of microservice architecture without some of it complexity. The embedded microservices use Uncle Bob's \"Clean Architecture\", check Example Go microservice for more details. Table of Contents - Overview - Structure of Go packages - Features - Development - Requirements - Setup - HTTPS - Usage - Cheatsheet - Run - Docker - Source - TODO Overview Structure of Go packages - api/ - definitions of own and 3rd-party (in api/ext- ) APIs/protocols and related auto-generated code - cmd/ - main application(s) - internal/ - packages shared by embedded microservices, e.g.: - internal/config - configuration (default values, env) shared by embedded microservices' subcommands and tests - internal/dom - domain types shared by microservices (Entities) - ms/ - embedded microservices, with structure: - internal/config - configuration(s) (default values, env, flags) for microservice's subcommands and tests - internal/app - define interfaces (\"ports\") for The Clean Architecture (or \"Ports and Adapters\" architecture) and implements business-logic - internal/srv/ - adapters for served APIs/UI - internal/sub - adapter for incoming events - internal/dal - adapter for data storage - internal/migrations - DB migrations ","default_branch":null,"files":null,"tree":[],"storefront":"/r/powerman","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/powerman/go-monolith-example/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}