Sprint 5 — Reddit Clone¶
Второй финальный pet-проект: Reddit-подобная платформа из 4 микросервисов. Дополняет Currency Service темами, которых там не было: JWT, древовидные комментарии, hot-feed алгоритм, опционально WebSocket.
Что строим¶
graph LR
Client --> GW[gateway-service]
GW --> AUTH[auth-service]
GW --> POSTS[posts-service]
GW --> FEED[feed-service]
AUTH --> AUTHDB[(Postgres)]
POSTS --> POSTSDB[(Postgres + ltree)]
POSTS --> R[(Redis)]
FEED --> R
FEED --> POSTSDB
Сервисы¶
| Сервис | Что делает | Стек |
|---|---|---|
| auth | регистрация, логин, JWT, refresh | Go, Postgres, JWT |
| posts | посты, комментарии (ltree) | Go, Postgres + ltree |
| feed | hot-feed, кэш | Go, Redis |
| gateway | единая точка входа, проверка JWT | Go, chi |
Ключевые темы¶
- JWT-авторизация: access + refresh
- Древовидные комментарии через ltree
- Hot-feed Reddit формула
- Realtime через WebSocket (опционально)
Финальная задача¶
Один репозиторий monorepo с 4 сервисами + общий docker-compose. Полный walkthrough.
Эталон¶
materials/projects/golang-course/6/99_hw/redditclone/ —
эталонная реализация для сравнения.