В наш чат из первого домашнего задания ежесекундно поступает множество сообщений. Мы хотим масштабировать наш проект, поэтому необходимо оптимизировать самое узкое место: работу с базой данных.
Для оптимизации записи в БД необходимо создать отдельный микросервис 'Storage', который будет получать сообщения пользователей через Kafka от основного сервиса и сохранять их в нашу БД (операция записи в Kafka значительно быстрее, чем запись в БД). Для улучшения производительности чтения из БД мы хотим использовать Redis.
Требования:
- Подключен GitHub Actions. (1 балл)
- Написан файл docker-compose для локального развертывания Kafka, Redis, Zookeeper. (1 балл)
- Использованы принципы "красивого кода": код соответствует принципам SOLID, разбит на модули, модули структурированы по директориям. (2 балла)
- Продумано корректное завершение работы приложения (graceful shutdown). (2 балла)
- Реализован сервис 'Storage'. (3 балла)
- Использован Redis. (3 балла)