Marketplace-проект на Go из финальной части Go Master Course. Репозиторий отражает этап курса, где приложение собирается в виде e-commerce платформы из нескольких сервисов с синхронным и асинхронным взаимодействием.
Проект собран вокруг 4 сервисов:
catalog— каталог товаров наPostgreSQLbasket— корзина наPostgreSQLс кешем вRedispromotion— сервис скидок наgRPCсMySQLcheckout— оформление заказа наPostgreSQL
Коммуникации и инфраструктура:
gRPCдля синхронного запроса скидок изbasketвpromotionRabbitMQдля асинхронного обмена событиями между сервисамиPrometheusиGrafanaдля метрик и мониторингаk6для нагрузочных сценариевPortainerдля управления контейнерамиDocker Composeдля dev/prod окружений
Курс ведёт от базового Go к production-style микросервисам и покрывает:
- основы Go, структуры, интерфейсы, конкурентность
- SOLID и базовые паттерны проектирования
- REST API и авторизацию
- микросервисную архитектуру
gRPC,RabbitMQ,PostgreSQL,MySQL,Redis- observability через
PrometheusиGrafana
В полном курсе заявлены:
300+видеоуроков50+часов видео261тест45интерактивных задач3проекта
Этот репозиторий соответствует финальному проекту курса: marketplace-платформе из нескольких сервисов.
.
├── cmd/
│ ├── basket/
│ ├── catalog/
│ ├── checkout/
│ └── promotion/
├── migrations/
│ ├── basket/
│ ├── catalog/
│ ├── checkout/
│ └── promotion/
├── infrastructure/
│ ├── grafana/
│ ├── k6/
│ ├── prometheus/
│ └── portainer_password.txt
├── compose-dev.yaml
├── compose-prod.yaml
└── preview/index.html
Поднимает базы данных, Redis и RabbitMQ для локальной разработки:
docker compose -p marketplace-dev -f compose-dev.yaml up -dОстановить и удалить тома:
docker compose -p marketplace-dev -f compose-dev.yaml down -vПоднимает сервисы приложения и инфраструктуру мониторинга:
docker compose -p marketplace-prod -f compose-prod.yaml up --build -dОстановить окружение:
docker compose -p marketplace-prod -f compose-prod.yaml down -vБазовые локальные настройки вынесены в .env.example. В нём описаны:
- порты и подключение
catalogкPostgreSQL basketdatabase URL,Redis,RabbitMQиgRPC-адрес promotion-сервисаpromotiondatabase URL, путь к миграциям и портыgRPC/metricscheckoutdatabase URL, путь к миграциям и настройкиRabbitMQ
compose-dev.yaml содержит локальную инфраструктуру:
PostgreSQLдляcatalog,basket,checkoutMySQLдляpromotionRedisRabbitMQ
compose-prod.yaml добавляет:
- сервисы
catalog_api,basket_api,promotion-grpc,checkout_api PrometheusGrafanak6Portainer
- SQL-миграции лежат в migrations
- конфиг Prometheus лежит в infrastructure/prometheus/prometheus.yml
- provisioning Grafana лежит в infrastructure/grafana/provisioning
- сценарии нагрузочного тестирования лежат в infrastructure/k6
Основной стек по go.mod и compose-конфигам:
Go 1.25gingRPCRabbitMQPostgreSQLMySQLRedisPrometheusGrafanaDocker Compose