Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/teamkweku/go-hexarch-architecture
Golang Type-Safe Hexagonal Architecture (Ports and Adapter) Design Pattern Example
https://github.com/teamkweku/go-hexarch-architecture
ci depencyinjection docker golang grpc hexagonal-architecture jwt makefile paseto-v4 protobuf redis
Last synced: about 2 months ago
JSON representation
Golang Type-Safe Hexagonal Architecture (Ports and Adapter) Design Pattern Example
- Host: GitHub
- URL: https://github.com/teamkweku/go-hexarch-architecture
- Owner: TeamKweku
- License: mit
- Created: 2024-07-30T15:54:21.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-11-07T16:30:59.000Z (about 2 months ago)
- Last Synced: 2024-11-07T16:41:47.049Z (about 2 months ago)
- Topics: ci, depencyinjection, docker, golang, grpc, hexagonal-architecture, jwt, makefile, paseto-v4, protobuf, redis
- Language: Go
- Homepage:
- Size: 190 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# GO USER AUTHENTICATION HEXAGONAL ARCHITECTURE EXAMPLE
> DISCLAIMER: Code in this repository is intended for educational purpose. This project is using a modular monolithic architecture employing the hexagonal architecture pattern, type-driven development and a production-ready approach to build a user authentication system.
This repository aims to showcase advanced techniques for building `close` to production-ready application in Golang. Mostly inspired by the [realworld-go](https://github.com/AngusGMorrison/realworld-go) by `AngusGMorrison`. The project is primarily a learning exercise for various Golang and DevOPS concepts.
## Hexagonal Architecture
This project is an implementation of the `Hexagonal Architecture` but for an explanation of this architecture and its benefits, you can check out [realworld-go](https://github.com/AngusGMorrison/realworld-go), where he references some interest articles on the topic from `Netflix` and `Uber`. For a video explanation on the architecture checkout [How To Structure Your Go App - Full Course](https://www.youtube.com/watch?v=MpFog2kZsHk&list=PL7g1jYj15RUPjxpD_PDt8L7IlA-VpT0t8) playlist.
## How Project is Structured
> COMING SOON..
# Progress
Here's what's been implemented so far.
## Go User Authentication Hexagonal Architecture Example
- [x] Users
- [x] Authentication
- [ ] Authorization
- [ ] Sessions
- [ ] Refresh Tokens
- [ ] Password Management
- [ ] Email Verification
- [ ] Account Security Features
- [ ] Role Based Access Control (RBAC)
- [ ] Multi-factor Authentication (2FA)
- [ ] Rate Limiting
- [ ] Audit Logging
- [ ] Account Recovery## Productionization
- [x] CI pipeline
- [x] Optimized Docker image
- [x] First-class error handling
- [x] Configuration
- [x] Linting
- [x] Extensive, concurrent unit test suite
- [ ] Health checks
- [ ] Streamlined local development experience
- [ ] Optimistic concurrency control
- [ ] Concurrent integration tests
- [ ] Structured logging
- [ ] Metrics
- [ ] Tracing
- [ ] API documentation
- [ ] Local Deployment## Acknowledgements
This project was inspired by and borrows concepts from [Realworld-go](https://github.com/angusgmorrison/realworld-go) by Angus Morrison. The original code provided valuable insights into structuring a Go application using hexagonal architecture.