В этом репозитории представлен перечень сервисов, составляющих решение нашего кейса.
Мы воспользовались микросервисной архитектурой, где взаимодействие между сервисами осуществляется с использованием gRPC.
Для авторизации применяется JWT
с двумя токенами и сессией. Дополнительно, чтобы преодолеть ограничение JWT
, заключающееся в том, что доступный токен остается валидным даже после изменения данных и прав пользователя, мы внедрили специальный механизм межсервисного взаимодействия. Этот механизм формирует и обновляет списки сессий, подлежащих принудительному обновлению пары токенов.
Демонстрация доступна по адресу hack.milkhunters.ru/tasks
, но еще предстоит внести множество улучшений и доработок.
Swagger-документация доступна для каждого из микросервисов:
Для развертывания сервисов мы используем TeamCity CI/CD, а для конфигурации - Consul KV.