Markr — это современная, облачно-ориентированная (cloud-native) платформа для управления ссылками и закладками, построенная на базе микросервисной архитектуры. Проект демонстрирует лучшие практики построения распределенных систем на Go.
Проект построен с использованием следующих технологий и паттернов:
- Язык: Go 1.26+
- Микросервисы:
go-kit(разделение на Transport, Endpoint, Service) - Коммуникация: gRPC + Protocol Buffers (внутреннее взаимодействие)
- База данных: PostgreSQL (основное хранилище) + Redis (кэш/сессии)
- Асинхронность: NATS (брокер сообщений для событийной архитектуры)
- Serverless: Nuclio (для фоновых задач, например, проверки доступности ссылок)
- Тестирование: Ginkgo (BDD) + интеграционные тесты с реальными Docker-контейнерами
Для локальной разработки и запуска тестов вам понадобятся:
- Go 1.26 или новее: Установка Go
- Docker: Для запуска зависимостей (PostgreSQL, Redis, NATS) в изолированных контейнерах.
- Protobuf Compiler (
protoc): Для генерации кода из.protoфайлов (понадобится на поздних этапах).