Аналог Pastebin или GitHub gist.
Стек
- Go
- Библиотеки: (будут добавляться)
- Postgres
- Kafka
- Docker
- Будет добавляться…
Краткое видение проекта
Создается 3 сервиса:
- Сервис pastbin
- Сервис авторизации
- Сервис генерации идентификаторов
Между 1 и 3 сервисом можно настроить общение через Kafka.
Будет дополнено…
Функциональные требования
- Сервис онлайн-хранения текста, аналогичный pastebin.com или GitHub gist
- Клиент (пользователь) вводит текстовые данные в систему, известную как паста
- Размер пасты не должен превышать 1 МБ
- Система должна возвращать уникальный ID для каждой пасты
- Клиент, посещающий ID пасты, должен иметь возможность просматривать пасту
- Система должна поддерживать только текстовые данные для пасты
- ID пасты должен быть свободным от коллизий
- ID пасты должен быть непредсказуемым
- ID пасты должен генерировать отчет аналитики (не в реальном времени), такой как общее количество доступов к пасте
- Клиент должен иметь возможность определить время истечения пасты
- Клиент должен иметь возможность удалить пасту
- Клиент должен иметь возможность установить видимость пасты (публичная, приватная)
- Клиент должен иметь возможность установить опциональный пароль для пасты
- Паста должна проходить фильтрацию Pastebin для предотвращения сомнительного контента
Нефункциональные требования
- Высокая доступность
- Низкая задержка
- Высокая масштабируемость
- Надёжность
- Отказоустойчивый
<aside>
💡 Возможно будет добавлено что-то еще
</aside>