NATS is an open source, lightweight, high-performance cloud native infrastructure messaging system. It implements a highly scalable and elegant publish-subscribe (pub/sub) distribution model. The performant nature of NATS make it an ideal base for building modern, reliable, scalable cloud native distributed systems.
Implemented with clean architecture by Uncle Bob in folder structure. Hopefully make you easier to implement this message broker.
So basically, this app was build using:
- Golang
- Nats
- Install go v1.11 or above to use go modules
- Make vendored copy of depedencies
go mod vendor
- Copy app.config.sample yml into decided environment. For example:
cp app.config.sample.yml app.config.dev.yml
- Fill the yml values
- Make sure your nats is ready (docker will help your life)
- You can use
go-nats.postman_collection.json
to test this repository
- Manual run
make start
- Bash script
bash run.sh
In this repo, there are two feature that implemented so far:
- Golang Clean Architecture Implementation by Iman.
- Nats.io concept.
- Goldi Lazy Injection concept.