Встречается на 1% собеседований по Python
Какая была самая сложная задача на 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
интервью вопросы и ответы