Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/isutare412/hexago
System architecture PoC tuned for Go.
https://github.com/isutare412/hexago
architecture cqrs dependency-injection domain-driven-design event-sourcing hexagonal-architecture kafka microservices mongodb openapi-spec protocol-buffer swagger-ui
Last synced: 13 days ago
JSON representation
System architecture PoC tuned for Go.
- Host: GitHub
- URL: https://github.com/isutare412/hexago
- Owner: isutare412
- Created: 2022-04-10T13:29:29.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-05-23T08:17:05.000Z (over 2 years ago)
- Last Synced: 2024-11-27T23:23:04.097Z (2 months ago)
- Topics: architecture, cqrs, dependency-injection, domain-driven-design, event-sourcing, hexagonal-architecture, kafka, microservices, mongodb, openapi-spec, protocol-buffer, swagger-ui
- Language: Go
- Homepage:
- Size: 280 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Hexago
System architecture PoC tuned for Go. The name Hexago was taken from Hexagonal
Architecture.## Considerations
- [Hexagonal Architecture](https://en.wikipedia.org/wiki/Hexagonal_architecture_(software))
+ `pkg/controller`: Driving adapters
+ `pkg/infrastructure`: Driven adapters
+ `pkg/core`: Business logics
- [Domain Driven Design](https://en.wikipedia.org/wiki/Domain-driven_design)
- [Dependency Injection](https://en.wikipedia.org/wiki/Dependency_injection)
- [CQRS with Event Sourcing](https://docs.microsoft.com/en-us/azure/architecture/patterns/event-sourcing)
- [Go Standard Layout](https://github.com/golang-standards/project-layout)## Overview
![Hexago CQRS diagram](assets/hexago-cqrs.drawio.png?raw=true)
## Modules
### [Hexago Gateway](./gateway)
API gateway module for hexago service.
### [Hexago Payment](./payment)
Payment module for hexago service.
### [Hexago Common](./common)
Includes common libraries of hexago modules.
## Infrastructure
1. Run infrastructures using docker compose.
```bash
make infra
# 1) up
# 2) down
# 3) ps
# 4) logs
# 5) quit
# Please enter your choice: 1
```2. Add local dns to each insfrastructure for local development. Optional for
docker environment.```bash
sudo tee -a /etc/hosts > /dev/null <