BA & SA | 10000 Interview questions
10.4K subscribers
191 photos
14 videos
364 links
Вопросы и задачи, которые задают на собеседованиях на позицию Бизнес и Системного аналитика. По вопросам сотрудничества- @DeliveryManager7
Download Telegram
4909. В системе на основе очередей сообщение с некорректными данными вызывает ошибку потребителя. При повторных попытках обработка останавливается, и очередь блокируется. Какой механизм изолирует «плохие» сообщения, чтобы очередь продолжала работать?
Anonymous Quiz
1%
Увеличение количества потребителей
9%
Транзакционная запись
88%
Dead Letter Queue (DLQ)
2%
Автоматический повтор с экспоненциальной задержкой
Объяснение:

В брокерах сообщений (RabbitMQ, Kafka, SQS) потребитель может упасть при обработке конкретного сообщения из-за ошибки в данных (например, некорректный JSON, отсутствие обязательного поля). Если настроить автоматические повторные попытки, это сообщение будет циркулировать бесконечно, блокируя обработку других сообщений (особенно в очередях с гарантией порядка). Это приводит к простою всей системы.

Что такое Dead Letter Queue (DLQ)?
DLQ — это специальная очередь (или топик), куда направляются сообщения, которые не удалось обработать после нескольких попыток (например, 3). Механизм работает так:
Сообщение попадает в основную очередь.
Потребитель пытается обработать его N раз (например, 3) с увеличивающейся задержкой (exponential backoff).
После исчерпания попыток сообщение автоматически перемещается в DLQ.
Основная очередь продолжает обрабатывать новые сообщения без блокировки.
Администратор или отдельный сервис анализирует DLQ, исправляет данные и повторно отправляет сообщение в основную очередь.

Сравнение с другими вариантами:
A (Увеличение потребителей) – не помогает, так как все потребители будут получать одно и то же «плохое» сообщение и падать.
B (Транзакционная запись) – обеспечивает атомарность, но не решает проблему изоляции ошибочных сообщений.
D (Автоматический повтор) – полезен для временных сбоев, но бесполезен для ошибок в данных; повтор будет бесконечным, пока очередь не заблокируется.

Реальный пример:
В сервисе заказов при интеграции со сторонним API иногда приходят заказы с некорректным форматом адреса. Без DLQ такие заказы «зависали» в очереди и блокировали обработку всех остальных. Внедрение DLQ позволило перемещать проблемные заказы в отдельную очередь, где их вручную правили операторы, а основной поток заказов обрабатывался без задержек.

Что должен зафиксировать аналитик:
«Для каждой критической очереди должна быть настроена Dead Letter Queue».
«Количество повторных попыток — не более 3, с экспоненциальной задержкой».
«Предусмотреть мониторинг DLQ и алертинг при накоплении сообщений».

Вывод: DLQ — это обязательный паттерн для отказоустойчивой обработки сообщений, позволяющий изолировать проблемные данные и не останавливать основной бизнес-процесс.
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Привет, друзья! Собрали новую папку по нейросетям, IT, ИИ

В этой папке собраны каналы, которые помогут прокачать навыки, автоматизировать работу и оставаться в курсе технологий


Что именно внутри:
▪️Свежие новости из мира нейросетей и AI
▪️ Готовые промпты и инструкции для популярных моделей
▪️ Кибербезопасность и защита данных
▪️ IT: Python, JavaScript, разработка и полезные инструменты
▪️ Вакансии, стажировки и удалённая работа в IT
▪️ Автоматизация бизнеса, процессов и рутины с помощью ИИ
▪️ Реальные случаи внедрения искусственного интеллекта в компании
▪️ Полезные сервисы, боты и расширения

Посмотреть и подписаться 👉 https://t.me/addlist/JA1NIlQX5gZkMjYy
№4910 категория вопросов: #ARCHITECTURE
4910. При перегрузке внешнего API вызовы исчерпывают ресурсы сервиса А. Какой паттерн временно приостанавливает вызовы?
Anonymous Quiz
14%
Retry with backoff
12%
Bulkhead
48%
Circuit Breaker
26%
Timeout
1
Объяснение:

При синхронных вызовах к нестабильному внешнему API, если он начинает тормозить или выдавать ошибки, каждый вызов ждёт таймаута (например, 30 секунд). При большом количестве таких запросов все потоки приложения оказываются заняты, и сервис А перестаёт отвечать даже на свои внутренние запросы. Простые ретраи (A) только усугубляют ситуацию, создавая дополнительную нагрузку. Timeout (D) помогает не ждать бесконечно, но не предотвращает повторные вызовы. Bulkhead (B) изолирует ресурсы, но не предотвращает сами вызовы.

Что делает Circuit Breaker:
Паттерн отслеживает ошибки при вызове внешнего сервиса и имеет три состояния:
CLOSED (замкнут) – вызовы идут к внешнему сервису. Счётчик ошибок увеличивается.
OPEN (разомкнут) – при превышении порога ошибок (например, 5 ошибок за 10 секунд) все вызовы мгновенно возвращают fallback-ответ (кэш, сообщение об ошибке) без реального запроса к сервису. Это даёт внешнему сервису время на восстановление.
HALF-OPEN (полуоткрыт) – через заданное время (например, 30 секунд) пропускается один пробный вызов. Если он успешен – предохранитель замыкается (CLOSED), если нет – снова размыкается (OPEN).

Реальный пример:
В Netflix, Hystrix (реализация Circuit Breaker) защищает сервисы от падения зависимостей. Если сервис рекомендаций падает, предохранитель размыкается, и пользователь видит заглушку, а не бесконечную загрузку.

Что должен зафиксировать аналитик:
«Для всех вызовов внешних API должен быть реализован паттерн Circuit Breaker».
«Порог ошибок – 5 за 10 секунд, таймаут открытого состояния – 30 секунд».
«Предусмотреть fallback-стратегию (кэш, сообщение, дефолтное значение)».

Вывод: Circuit Breaker — обязательный паттерн для всех синхронных интеграций, чтобы избежать каскадных отказов и исчерпания ресурсов системы.
Please open Telegram to view this post
VIEW IN TELEGRAM
Добрый день!
Папка, собранная исключительно из учебных каналов — точно будет для вас полезной!

В папке собраны каналы, которые:
- рассказывают про ЕГЭ и ОГЭ для обучающихся в школе;
-каналы
репетиторов
- каналы про олимпиады;
- каналы для обучения языку;
- каналы посвященные тематическим предметам ВУЗов;
- каналы для учителей, предназначенные для повышения их квалификации.


Присоединиться к папке можно по ссылке
https://t.me/addlist/91bCxG05F61kOGJi
№4911 категория вопросов: #ARCHITECTURE
4911. Клиент шлет POST /orders. Из-за таймаута ответ не получен. Повторный запрос с тем же телом создает дубликат. Как гарантированно избежать дублей на стороне сервера без изменения бизнес-логики?
Anonymous Quiz
8%
Использовать PUT вместо POST с тем же ID
85%
Добавить заголовок Idempotency-Key и проверять его
6%
Установить Retry-After в ответе на первый запрос
2%
Отправить запрос с Cache-Control: no-store
👍1
Объяснение:
Метод POST не обязан быть идемпотентным по спецификации. Заголовок Idempotency-Key (нестандартный, но де-факто индустриальный стандарт, используемый Stripe/PayPal) позволяет серверу запомнить ключ и результат первой обработки. При повторном запросе сервер возвращает сохраненный ответ, не выполняя логику повторно.
А — нельзя использовать PUT, если ID генерируется сервером.
С — Retry-After говорит клиенту, когда повторять, но не отменяет дубли.
D — Cache-Control влияет только на промежуточные кэши, а не на семантику обработки запроса сервером.
УСПЕВАЕШЬ СЛЕДИТЬ ЗА НОВИНКАМИ ?! Технологии не ждут ...

* Когда подписки устарели (outdated) -
пора сделать АПГРЕЙД своего информационного поля.

Это ПОДБОРКА ведущих Telegram-каналов — тех самых людей, которые не просто читают новости, а сами их создают.

📂 Добавляй ПАПКУ — и получи полный АПГРЕЙД своей ленты:

* Сделай свою подписку умнее, пока другие читают вчерашние новости ⚡️
Отписаться можно в любой момент. Остаться — тоже ✔️
1👍1🔥1
НЕБОЛЬШОЙ АПГРЕЙД ТВОЕЙ ЛЕНТЫ, КОТОРЫЙ ДАСТ ХОРОШИЙ БУСТ ТВОЕЙ КАРЬЕРЕ

Друзья, наш канал попал в подборку тг-каналов про AI & IT, технологии и карьеру — получилась тусовка «для своих» 😎

Мы собрали каналы для себя, которые реально полезны:
следить за ИИ — от свежих инструментов до реальных кейсов
разбираться в технологиях — тренды, обзоры и объяснения
расти в IT — советы по карьере, поиску работы и развитию
быть в теме HR Tech — как технологии меняют найм и управление, ИИ для удаленки и работы за рубежом

🆒 Осталось только добавить папку себе ✔️https://t.me/addlist/dDKo2ardPVBiYThk
👍1
№4912 категория вопросов: #ARCHITECTURE
4912. Клиент запрашивает GET /report с If-None-Match: "v2". Ресурс не изменился. Сервер возвращает 304. Какое тело ответа и заголовки Content-Type допустимы по RFC 7232?
Anonymous Quiz
31%
304 с пустым телом, Content-Type отсутствует
47%
304 с JSON-телом ошибки, Content-Type: application/json
16%
200 OK с пустым телом, Content-Type: application/json
6%
412 Precondition Failed с пустым телом
Пояснение к ответу:
Спецификация RFC 7232 прямо запрещает возвращать тело (entity-body) в ответе с кодом 304 Not Modified. Клиент должен использовать свою кэшированную копию. Заголовок Content-Type в ответе 304 не имеет смысла и должен отсутствовать или игнорироваться.
2 вариант ответа нарушает RFC.
3— 200 означает, что сервер отдал ресурс, но это не так.
4— 412 возвращается на 
If-Match (если условие НЕ выполнено), а для If-None-Match при совпадении ETag правильный ответ — 304.
№4913 категория вопросов: #REQUIREMENTS
4913. Какая техника лучше всего подходит для выявления скрытых потребностей пользователя, о которых он сам не может сказать напрямую?
Anonymous Quiz
11%
Анкетирование
78%
Наблюдение за рабочим процессом
2%
Анализ документации
9%
Мозговой штурм
№4914 категория вопросов: #REQUIREMENTS
№4915 категория вопросов: #REQUIREMENTS