Awesome NomadDemo and Learning Resources

thangchung/go-coffeeshop

⭐ 4361 Go repository created 2022-09-18

The project "go-coffeeshop" is a practical event-driven microservices demo application built using Golang. It simulates a coffee shop environment with multiple microservices that interact in an event-driven manner. The application is designed to demonstrate modern microservices architecture and deployment practices using a variety of HashiCorp tools and other infrastructure components. The project leverages HashiCorp Nomad for orchestration and deployment, Consul Connect for service mesh and service discovery, Vault for secrets management, and Terraform for infrastructure as code deployment. The microservices architecture includes several services such as grpc-gateway, product service, counter service, barista service, kitchen service, and a web frontend. These services communicate using gRPC and RabbitMQ for messaging, showcasing a choreography saga pattern for managing distributed transactions. The backend stack includes popular Golang libraries and tools such as grpc-gateway, Echo web framework, RabbitMQ client, sqlc for SQL generation, and various utilities for logging, configuration, and dependency injection. The infrastructure stack includes PostgreSQL as the database, RabbitMQ as the message broker, and Docker for containerization. The project also provides a reproducible development environment using devcontainers. The repository includes detailed documentation on how to deploy the application using the HashiCorp stack, including Nomad, Consul Connect, Vault, and Terraform. It also provides instructions for local development and debugging. The project follows clean domain-driven design principles and aims to enhance microservices development with features like testing, observability, user identity management, and resiliency in future updates. Overall, "go-coffeeshop" serves as a comprehensive example for developers looking to build and deploy event-driven microservices applications using Golang and HashiCorp tools.

https://github.com/thangchung/go-coffeeshop

alpinejschoreography-sagaclean-architectureconsul-connectddddependency-injectiondeploymentdevcontainerdockerdomain-driven-designecho-frameworkevent-drivenevent-driven-architectureevent-driven-microservicesgolanggrpc-gatewayhashicorp-nomadinfrastructure-as-codemicroservicesnomadpostgresqlrabbitmqsecrets-managementservice-meshsqlcterraformvaultvertical-slice-architecturewire

Also in Demo and Learning Resources

star3am/hashiqube

HashiQube is an all-in-one hands-on DevOps lab that runs all HashiCorp products including Nomad, providing a versatile environment for learning, practicing, and demonstrating infrastructure and security tools in cloud or local setups.

fhemberger/nomad-demo

A Vagrant-based demo environment for running and exploring HashiCorp Nomad, Consul, and Vault with integrated service discovery, workload orchestration, and monitoring tools.

thangchung/coffeeshop-on-nomad

A .NET microservices coffeeshop application deployed and orchestrated on HashiCorp Nomad with Consul Connect for service mesh and Docker containers.

nairnavin/practical-nomad-consul

A practical tutorial and guide for deploying a realistic multi-tier Spring Boot Petclinic application using HashiCorp Nomad and Consul with service mesh, ingress and terminating gateways, load balancing, and secure communication.