- Auth Service:
- Регистрация, аутентификация (JWT), восстановление пароля
- Интеграция с OAuth2 (например, Google, VK)
- Posts Service:
- Создание/удаление постов, загрузка медиа (S3-совместимое хранилище)
- Интеграция с Kafka, чтобы отправлять в ленту новые посты
- Feed Service:
- Генерация ленты: кэш (Redis)
- Пагинация и фильтрация по дате
- Chat Service:
- WebSocket
- Search Service
- Elasticsearch для полнотекстового поиска
Детализация ключевых аспектов
Балансировка и нагрузка:
- LB (Nginx):
- Load shedding: приоритет запросов на чтение ленты
- Round Robin для большинства
- Least Connections в чатах
- Rate Limiting:
- 1000 запросов/мин на пользователя (Bucket4j)
Базы данных:
- PostgreSQL: Основное хранилище (шардинг по post_id)
- Redis: Кэш ленты, счетчики лайков
Архитектура:
- Монолит → Микросервисы:
- Первый этап: API Gateway (Kong) для роутинга
- Распил на сервисы: Auth, Feed, Posts