Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Practical microservices based on different software architecture and technologies like Golang, CQRS, Vertical Slice Architecture, Docker, RabbitMQ, OpenTelemetry and Postgresql.
| Date | Stars |
|---|---|
| 2026-07-24 | 568 |
| 2026-07-25 | 568 |
| 2026-07-28 | 568 |
| 2026-07-30 | 568 |
| 2026-08-06 | 568 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
[](https://github.com/meysamhadeli/shop-golang-microservices/actions/workflows/ci.yml)

# 📍 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.** 🚀
<div>
<a href='https://codespaces.new/meysamhadeli/shop-golang-microservices?quickstart=1'><img alt='Open in GitHub Codespaces' src='https://github.com/codespaces/badge.svg'></a>
</div>
# Table of Contents
- [The Goals of This Project](#the-goals-of-this-project)
- [Plan](#plan)
- [Technologies - Libraries](#technologies---libraries)
- [The Domain and Bounded Context - Service Boundary](#the-domain-and-bounded-context---service-boundary)
- [Structure of Project](#structure-of-project)
- [How to Run](#how-to-run)
- [Docker-Compose](#docker-compose)
- [Build](#build)
- [Run](#run)
- [Test](#test)
- [Documentation Apis](#documentation-apis)
- [Support](#support)
- [Contribution](#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 `configuration management`.
- :sparkle: Using `logrus` as a `structured logger`.
- :sparkle: Using `Unit Testing`,`Integration Testing` and `End To End Testing` for testing level.
- :sparkle: Using `Docker-Compose` for our `deployment` mechanism.
- :construction: Using `OpenTelemetry` for `monitoring` top of `Prometteuse` and `Grafana`
- :construction: Using `MongoDB` for read side with `mongo-driver`.
- :construction: Using `Domain Driven Design` (DDD) to implement all `business` processes in microservices.
- :construction: Using `Inbox Pattern` for ensuring message idempotency for receiver and `Exactly once Delivery`.
- :construction: Using `Outbox Pattern` for ensuring no message is lost and there is at `At Least One Delivery`.
## Plan
> 🌀This project is a work in progress, new features will be added over time.🌀
I will try to register future goals and additions in the [Issues](https://github.com/meysamhadeli/shop-golang-microservices/issues) section of this repository.
## Technologies - Libraries
- ✔️ **[`labstack/echo`](https://github.com/labstack/echo)** - High performance, minimalist Go web framework
- ✔️ **[`go-gorm/gorm`](https://github.com/go-gorm/gorm)** - The fantastic ORM library for Go, aims to be developer friendly
- ✔️ **[`sirupsen/logrus`](https://github.com/sirupsen/logrus)** - Logrus is a structured logger for Go
- ✔️ **[`streadway/amqp`](https://github.com/streadway/amqp)** - Go RabbitMQ Client Library
- ✔️ **[`spf13/viper`](https://github.com/spf13/viper)** - Go configuration with fangs
- ✔️ **[`swaggo/echo-swagger`](https://github.com/swaggo/echo-swagger)** - Echo middleware to automatically generaExcerpt of 12,252 characters
Read on GitHub391
2
1
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:a87a2e66f8ee40ca, topic:opentelemetry
matched fp:a87a2e66f8ee40ca, topic:testing