{"repo":"meysamhadeli/shop-golang-microservices","free":true,"listed":false,"github":"https://github.com/meysamhadeli/shop-golang-microservices","clone":"git clone https://github.com/meysamhadeli/shop-golang-microservices.git","description":"Practical microservices based on different software architecture and technologies like Golang, CQRS, Vertical Slice Architecture, Docker, RabbitMQ, OpenTelemetry and Postgresql.","language":"Go","stars":570,"topics":["clean-architecture","cqrs","go","golang","microservices","rabbitmq","vertical-slice-architecture","postgresql","microservice","ddd"],"license":"MIT","category":"databases-storage","readme_excerpt":"📍 Shop Golang Microservices 💡 A practical and imaginary microservices for implementing an infrastructure for up and running distributed system with the latest technology and architecture like Vertical Slice Architecture, Event Driven Architecture, CQRS, Postgres, RabbitMq in Golang. 🚀 Table of Contents - The Goals of This Project - Plan - Technologies - Libraries - The Domain and Bounded Context - Service Boundary - Structure of Project - How to Run - Docker-Compose - Build - Run - Test - Documentation Apis - Support - Contribution The Goals of This Project - :sparkle: Using Vertical Slice Architecture for architecture level . - :sparkle: Using Rabbitmq for Event Driven Architecture between our microservices with streadway/amqp library. - :sparkle: Using gRPC for internal communication between our microservices with grpc/grpc-go library. - :sparkle: Using CQRS implementation with mehdihadeli/Go-MediatR library. - :sparkle: Using Postgres for database in our microservices with go-gorm/gorm library. - :sparkle: Using go-playground/validator for validating input data in the REST calls. - :sparkle: Using OpenTelemetry for distributed tracing top of Jaeger . - :sparkle: Using OAuth2 for implementation authentication and authorization with go-oauth2/oauth2 library. - :sparkle: Using Echo framework for RESTFul api . - :sparkle: Using Swagger with swaggo/swag library for api documentation. - :sparkle: Using uber-go/fx library for dependency injection . - :sparkle: Using Viper for ","default_branch":null,"files":null,"tree":[],"storefront":"/r/meysamhadeli","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/meysamhadeli/shop-golang-microservices/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}