{"repo":"yinebebt/hexagonal-architecture","free":true,"listed":false,"github":"https://github.com/yinebebt/hexagonal-architecture","clone":"git clone https://github.com/yinebebt/hexagonal-architecture.git","description":"Hexagonal architecture through a Go-based project demonstration","language":"Go","stars":19,"topics":["go","gorm","hexagonal-architecture","adapters","graphql","grpc","handler","mongodb","port","postgres"],"license":"MIT","category":"databases-storage","readme_excerpt":"Hexagonal Architecture Hexagonal architecture is a design pattern suitable for building scalable and complex projects. This repository serves as a demonstration of the principles of Hexagonal Architecture in a Go project. The goal of this project is to provide a straightforward example that developers can use to understand and apply Hexagonal Architecture in their own projects. By following the structure and patterns demonstrated here, developers can build scalable and maintainable systems with ease. In this demo, the core business functionality revolves around managing user and video entities. Administrators have the capability to manage videos, while users are provided with access to view the available videos. Explore the concept of Hexagonal Architecture further in Hexagonal Architecture in Go. Adapters Handler - [x] REST API - Gin - [x] GraphQL (Playground at /v1/graphql ) - [ ] gRPC - [ ] WebSocket Repository - [x] SQLite - [x] PostgreSQL Project Structure Architecture Principles - Core (Domain) : Contains business logic, entities, and ports (interfaces) - Adapters : Implement ports for external concerns (HTTP, databases) - Dependency Inversion : Core depends on abstractions (ports), not implementations - Clean Separation : Business logic is independent of frameworks and databases Installation Running the Application","default_branch":null,"files":null,"tree":[],"storefront":"/r/yinebebt","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/yinebebt/hexagonal-architecture/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."}