This is an example of implementation of Clean Architecture with S.O.L.I.D Principles in Go (Golang) projects.
Rule of Clean Architecture by Uncle Bob
More at https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html
SOLID is an acronym representing five essential design principles for writing maintainable and scalable software. These principles were introduced by Robert C. Martin (Uncle Bob) and have become fundamental guidelines for good software design.
The SRP states that a class should have only one reason to change, meaning it should have a single, well-defined responsibility. This principle encourages the separation of concerns, making code more modular and easier to maintain.
The OCP emphasizes that software entities (classes, modules, functions) should be open for extension but closed for modification. To achieve this, use abstractions (e.g., interfaces, abstract classes) and dependency injection to allow adding new functionality without altering existing code.
The LSP states that objects of a derived class should be substitutable for objects of the base class without affecting the correctness of the program. In other words, derived classes must adhere to the contract defined by their base classes.
The ISP suggests that clients should not be forced to depend on interfaces they do not use. Create smaller, more focused interfaces rather than large, monolithic ones. This avoids unnecessary dependencies and promotes flexibility.
The DIP promotes high-level modules (e.g., use cases) to depend on abstractions (e.g., interfaces) rather than concrete implementations. This inversion of dependencies allows for flexibility and testability by injecting dependencies from external sources.

Cache-Control: no-cache)Cache-Control: max-age=120)POST verb)PUT verb)PATCH verb)GET verb)?limit=10&page=1)?sort=fullname DESC,id DESC)Start MySQL Container
make setup # Start MySQL database in Docker container
Run Database Migrations
make migrate-up # Apply database migrations
Run Application Locally
make run # Setup environment, run migrations, and start the application
Golang: - Go Documentation - Go For Industrial Programming - Uber Go Style Guide - Go Code Review Comments - typical-rest-server - go-clean-arch - a-clean-way-to-implement-database-transaction-in-golang
This project is licensed under the MIT License.
$ claude mcp add golang-clean-architecture \
-- python -m otcore.mcp_server <graph>