A simple docker-compose environment to bring up a NATS JetStream environment to play with.
Some golang JetStream example code copied from: https://github.com/shijuvar/go-distsys
docker compose up -dThis will bring up:
- NATS server
- NATS promehteus exporter (http://localhost:7777/metrics)
- Prometheus (http://localhost:9090/)
- Grafana (http://localhost:3000/)
The prometheus targets and grafana datasource and dashboards should be automatically provisioned.
The NATS JetStream dashboard should look something like this:

Run the go publisher:
cd create-order
go run main.goRun the order-review subscriber (subscribes to ORDERS.created and publishes ORDERS.approved messages)
cd monitor
go run main.goRun the monitor subscriber (simply subscribes to all subjects in the ORDERS stream)
cd monitor
go run main.goOpen up the NATS cli:
docker run -ti --network go-nats_nats natsio/nats-boxSome useful commands:
nats -s nats account info
nats -s nats stream ls
nats -s nats stream ORDERS
nats -s nats stream view ORDERS
nats -s nats stream info ORDERS
nats -s nats stream view ORDERS 2
nats -s nats consumer info ORDERS monitor
nats -s nats consumer info ORDERS order-review
nats -s nats stream rm ORDERS