Встречается на собеседованиях • сегодня
Какая была самая сложная задача на Backend без оборудования
Разработка распределённой системы очередей с гарантированной доставкой сообщений и обработкой дублей. Основные сложности:
- Гарантии доставки: нужно было обеспечить at-least-once доставку, но избежать дублей при повторных отправках.
- Масштабируемость: система должна была обрабатывать >10k сообщений/сек с возможностью горизонтального масштабирования.
- Идемпотентность: обработка дубликатов без повторного выполнения бизнес-логики.
Решение на Python (упрощённый пример):
python
class MessageQueue:
def __init__(self):
self.processing = set()
self.completed = set()
async def process(self, message_id, payload):
if message_id in self.completed:
return # уже обработано
if message_id in self.processing:
raise ConcurrentProcessingError()
self.processing.add(message_id)
try:
await handle_payload(payload)
self.completed.add(message_id)
finally:
self.processing.remove(message_id)Ключевые моменты:
- Использование Redis для хранения состояний
- Таймауты обработки
- Механизм подтверждения (ack/nack)
- Шардирование очередей
Особенно сложно было добиться согласованности при обработке в конкурентной среде.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы