Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

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.