Какая была самая сложная задача на Backend без оборудования

Python Junior Без компании
Какая была самая сложная задача на Backend без оборудования
Ответы
Разработка распределённой системы очередей с гарантированной доставкой сообщений и обработкой дублей. Основные сложности: - **Гарантии доставки**: нужно было обеспечить at-least-once доставку, но избежать дублей при повторных отправках. - **Масштабируемость**: система должна была обрабатывать >10k сообщений/сек с возможностью горизонтального масштабирования. - **Идемпотентность**: обработка дубликатов без повторного выполнения бизнес-логики. Решение на 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) - Шардирование очередей Особенно сложно было добиться согласованности при обработке в конкурентной среде.