Код не компилируется и имеет N+1-запросы, утечки rows и неверную фильтрацию isActive=false. Для миллиона записей обязательны пагинация и отделение внешнего API.
Храните назначение замещения: сотрудник, заместитель, период, область полномочий и статус согласования. Проверка доступа учитывает действующее назначение и запрещает превышение разрешённого объёма.
gRPC удобен для типизированных межсервисных вызовов и streaming, REST — для ресурсного HTTP API и широкой совместимости. Kafka подходит событиям, не требующим немедленного ответа.
Опишите API, которое разрабатывали или проверяли, его контракт и типы тестов. Разделите ручные вызовы, автоматические проверки и поддержку совместимости.
Держите экземпляры сервиса взаимозаменяемыми, состояние размещайте в подходящих хранилищах и ограничивайте нагрузку на зависимости. Масштабирование должно учитывать весь путь запроса.
Версию API можно задавать в пути, заголовке или media type; иногда достаточно совместимого расширения без новой версии. Важно заранее определить правила breaking changes.
Опишите, что именно масштабировали: stateless-сервисы, consumers, БД или кеш. Назовите bottleneck и способ измерения, а не только увеличение числа pod.