# thangchung/go-coffeeshop

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

Repository: https://github.com/thangchung/go-coffeeshop
Canonical: https://ross.abutalabs.com/products/go-coffeeshop
Language: Go
License: MIT
License Family: permissive
Topics: clean-architecture, echo-framework, golang, grpc-gateway, microservices, ddd, postgresql, rabbitmq, alpinejs, consul-connect, nomad, terraform, event-driven-microservices, event-driven-architecture, vertical-slice-architecture, dependency-injection, sqlc, wire
Last push: 2023-05-10T01:17:45+00:00

## Health v2 (maintenance only)
Score: 23/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 8, longevity 100
- inputs: {"age_days": 1445, "days_push": 1212, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 4360, forks 454 (observed 2026-08-28T04:08:46.557348+00:00)

## What it is
A practical event-driven microservices demo application for a coffee shop, written in Go with services for products, counter, barista, and kitchen communicating via RabbitMQ. It is deployed with the HashiCorp stack (Nomad, Consul Connect, Vault, Terraform) and demonstrates clean/vertical-slice DDD architecture.

## Use cases
- learn how to build event-driven microservices in Go
- see a choreography saga example with RabbitMQ
- reference architecture for Go microservices with gRPC and REST
- example of deploying microservices on Nomad with Consul and Vault
- study clean architecture and DDD in a real Go codebase
- demo app for grpc-gateway with echo framework
- understand vertical slice architecture in Go

## When to choose
- you want a realistic, runnable reference for event-driven Go microservices
- you're evaluating the HashiCorp deployment stack (Nomad, Consul, Vault, Terraform)
- you want to learn clean DDD or vertical slice architecture patterns in Go
- you need an example combining gRPC, grpc-gateway, RabbitMQ, and Postgres

## When to avoid
- you need a production-ready coffee shop or POS system - it's a demo
- you want a simple monolith or minimal starter template
- you don't use the HashiCorp stack and only need basic microservice scaffolding
- you need actively evolving features - the project is a stable showcase

## Facets
- artifact type: application
- maturity: maintenance
- function: microservices, rpc, message-queue, web-framework, api-gateway, deployment, infrastructure-as-code, developer-tools
- domain: microservices, backend, web-development, developer-tools
- platform: go, self-hosted, cross-platform
- tags: event-driven-architecture, clean-architecture, domain-driven-design, grpc-gateway, nomad, consul-connect, vault, terraform, rabbitmq, postgresql, sqlc, vertical-slice-architecture, saga-pattern, demo-application, reference-architecture, devops, docker, linux

## Member repositories
- thangchung/go-coffeeshop (main) score 23

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:08:46.557348+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T18:21:27.588301+00:00, confidence not recorded.
  - readme: https://github.com/thangchung/go-coffeeshop (fetched 2026-08-28T04:08:46.557348+00:00, sha 3be1253f5b0f)
- Data as of 2026-08-30T08:39:29.467469+00:00.
