/go-coffeeshop

☕ A practical event-driven microservices demo built with Golang. Nomad, Consul Connect, Vault, and Terraform for deployment

Primary LanguageGoMIT LicenseMIT

go-coffeeshop

A coffee shop application with event-driven microservices has been written in Golang. Nomad, Consul Connect, Vault, and Terraform for deployment

Other version can be found at:

Technical stack

CoffeeShop - Choreography Saga

Services

No. Service URI
1 grpc-gateway http://localhost:5000
2 product service http://localhost:5001
3 counter service http://localhost:5002
4 barista service http://localhost:5003
5 kitchen service http://localhost:5004
6 web http://localhost:8080

Starting project

Jump into .devcontainer, then

> docker-compose -f docker-compose-full.yaml build
> docker-compose -f docker-compose-full.yaml up

From vscode => Press F1 => Type Simple Browser View => Choose it and enter http://localhost:8080. Enjoy!!!

Screenshots

Home screen

home_screen

Payment screen

payment_screen

Order list screen

order_list_screen

HashiCorp stack deployment

The details of how to run it can be find at deployment with Nomad, Consult Connect and Vault.

Debug Apps

Debug golang app in monorepo

Trouble shooting

Development project trouble shooting

Roadmap

  • Enhance project structure with DDD patterns
  • Add testing
  • Add and integrate with observability libs and tools
  • Add user identity management (authentication and authorization)
  • Add resiliency

Credits