Тестовое задание для стажировки в команде Юла Авто
Контекст:
Предположим что мы разрабатываем систему контроля в некотором бизнес-процессе.
У нас несколько одинаковых датчиков и чтобы собирать данные мы решили создать сервис-агрегатор, который вычисляет среднее арифметическое и предоставляет результат по запросу другим системам.
В случае нестабильной работы хотя бы одного из датчиков, сервис помечает результат работы флагом, означающим неполноту данных
Цель сервиса:
Предоставлять другим сервисам арифметическое среднее показателей нескольких датчиков
Ограничения:
- сервис актуализирует данные не реже одного раза в минуту
- сервис предоставляет данные другим системам по HTTP протоколу
- ожидаемая нагрузка на сервис ~500 rps
- количество датчиков данных от 2 до 10
- датчики могут работать некорректно или временно быть недоступными
- формат данных предоставляемых датчиками - целое число от 0 до 255
- каждый датчик предоставляет данные по HTTP
Критерии оценки:
- стабильность работы при условиях задержек и недоступности датчиков
- качество кода и архитектуры приложения
Вспомогательная информация
Для упрощения разработки, в этом репозитории мы подготовили окружение в котором уже развернуты несколько датчиков.
При помощи docker-compose
и утилиты make
ты можешь запустить окружение выполнив команду $ make run_sensors
.