Комментарии 2
Спорное решение - добавить бутылочное горлышко в виде одного эндпоинта и использовать не самый быстрый (но чертовски удобный) zod
Если говорить про «бутылочное горлышко», то BFF сам по себе им не является. И он не обязательно сводится к одному эндпоинту — это вопрос архитектуры и удобства.
Про Zod согласен — он не самый быстрый, но именно он позволяет реализовать безопасный обмен данными с соблюдением типов. Если критична производительность, то BFF легко горизонтально масштабируется. Я понимаю, что при десятках и сотнях тысяч RPS каждый оверхед критичен, но сомневаюсь, что Zod окажется узким местом. Наоборот, чем масштабнее и сложнее система, тем критичнее становится управляемость API.
Кстати, можно реализовать механизм пропуска валидации для части запросов на горячих эндпоинтах при высокой нагрузке, по аналогии с circuit breaker.
Безопасное взаимодействие с API: от ошибок к стабильности