thangchung/go-coffeeshop

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

GoHTMLHCLJavaScriptCSSShellMakefilegolangmicroservicesrabbitmqdddterraformdependency-injectionpostgresqlclean-architecturegrpc-gatewayevent-driven-microservicesnomadwireecho-frameworkevent-driven-architectureconsul-connectalpinejssqlcvertical-slice-architecture
This is stars and forks stats for /thangchung/go-coffeeshop repository. As of 01 May, 2024 this repository has 3743 stars and 399 forks.

go-coffeeshop An event-driven microservices coffee shop application has been written in Golang and deployed using Nomad, Consul Connect, Vault, and Terraform. Other versions in .NET/C# can be found at: .NET CoffeeShop with Microservices approach .NET CoffeeShop with Modular Monolith approach Technical stack Backend building blocks grpc-ecosystem/grpc-gateway/v2 labstack/echo/v4 rabbitmq/amqp091-go kyleconroy/sqlc pq golang-migrate/migrate/v4 Utils google/wire ilyakaznacheev/cleanenv golang.org/x/exp/slog sirupsen/logrus samber/lo automaxprocs/maxprocs stretchr/testify golang/glog google/uuid google.golang.org/genproto google.golang.org/grpc google.golang.org/protobuf Infrastructure Postgres, RabbitMQ Hashicorp Nomad, Consul (Connect), Vault, Terraform docker and docker-compose devcontainer for reproducible development environment 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 worker only 5 kitchen service worker only 6 web http://localhost:8888 Starting project Jump into .devcontainer, then > make docker-compose From vscode => Press F1 => Type Simple Browser View => Choose it and enter http://localhost:8888. Enjoy!!! Screenshots Home screen Payment 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. Development Clean Domain-driven Design Generate dependency injection instances with wire > make wire Generate code with sqlc > make sqlc 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 project-layout repository-structure go-build-template go-clean-template emsifa/tailwind-pos
Read on GithubGithub Stats Page
repotechsstarsweeklyforksweekly
open-telemetry/opentelemetry-operatorGoMakefileDockerfile86703030
AlbanAndrieu/jenkins-pipeline-scriptsGroovyShellOther7020
AoC-ESPOL/AoC-2022-SolutionsPythonRustJava5040
ericchiang/pupHTMLGoOther7.8k02810
darwinanddavis/worldmapsHTMLJavaScriptOther59070
AlreadyBored/node-nodejs-basicsJavaScript3502k0
ShirasawaSama/CefDetectorXJavaScriptCSSHTML1.6k0250
neherlab/pangraphJuliaPythonShell68060
MIT-LCP/mimic-codeJupyter NotebookHTMLPython2.1k01.4k0
roboflow-ai/roboflow-100-benchmarkJupyter NotebookPythonShell1970190