Как можно дополнительно обезопасить нашу систему

Так как в текущей системе очень много крутится вокруг данных, то давай попробуем начать с них:

  1. Если по мониторингам загруз CPU > 80%, то можно использовать аналог load shedding — выбирать только ограниченное кол-во заведений из Elastic (условные ТОП-20). Если нагрузка в PG, то выбирать только core поля, чтобы снизить нагрузку на БД
  2. Если MinIO начинает проседать по скорости, то media-service может осуществить fallback и отдавать только заглушки

Далее применим bulkhead паттерн:

  1. Для поиска заведений выделяем отдельный thread pool с 85% ресурсов
  2. Для админов оставляем 10%
    1. Казалось бы, загруз с админов гораздо меньше. Но не забывай, что выше CPU нагрузка из-за добавления/изменения
  3. Для разных инфра моментов (снять логи, метрики и тд) — 5%

Или же, если мы не хотим возиться с bulkhead, то мы можем создать отдельный сервис для загрузки geo данных из админки, а отдельный для запроса geo данных клиентами.