Подборка объединяет вопросы, отмеченные на этапах интервью в Т-Банк. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: database, backend, api.
Нельзя просто направить весь поток после отказа кэша в БД. Нужны лимит fallback-запросов, объединение одинаковых промахов, короткие timeout и управляемая деградация.
Код реализует cache-aside: сначала читает кэш, при промахе — БД и сохраняет найденный заказ. Основные риски — устаревшие данные, одновременные промахи и неоговорённое поведение при сбое кэша.
Разделите оптимизацию consumer-потока и RPC: где терялось время, какие гарантии сохранялись и как измерили эффект. Названия Kafka и параллельности сами по себе не объясняют ускорение.
Последняя строка не вызывает удаление: у popLast отсутствуют (). Для mutating-метода попытка использовать его как значение также может быть ошибкой компиляции.
В строгом режиме возникнет TypeError при чтении this.currentFilter внутри callback. В нестрогом окружении без глобального currentFilter результат будет пустым массивом.
Разделите доставку сообщений, долговременное хранение и локальный офлайн-кэш. WebSocket доставляет события онлайн, но источником истины остаётся серверная история с проверкой доступа к диалогу.
Если useForceUpdate действительно обновляет состояние App, без мемоизации перерендерятся App, Parent, Child и все три RenderCount. Повторный рендер не означает замену всех DOM-узлов.