queues
Очереди, потоки, события
Как части системы передают работу через очереди сообщений, а не ждут друг друга — чтобы оставаться быстрыми и пережить сбой, не потеряв ни одного сообщения.
Начать трек →С нуля
Перед senior-материалом: что вообще такое очередь сообщений и горстка слов, которые остальной трек считает уже знакомыми.Гарантии доставки: at-most-once, at-least-once и правда об exactly-once
Exactly-once delivery невозможна (Two Generals). At-least-once + идемпотентный consumer = effectively-once. Kafka транзакции, SQS visibility timeout и outbox-паттерн — production-инструменты.Kafka partitions
Как Kafka распределяет сообщения по partitions, назначает членов consumer group и почему количество partitions — это решение в одну сторону.RabbitMQ exchanges и маршрутизация
Direct, fanout, topic и headers exchanges — как binding keys маршрутизируют сообщения и где каждый паттерн применяется на production.Гарантии порядка сообщений
Почему полный порядок дорог, как Kafka обеспечивает FIFO на уровне partition и практические паттерны сохранения порядка в distributed consumers.Паттерн transactional outbox
Атомарная запись строки БД и сообщения — как outbox-таблица, polling relay и CDC устраняют проблему двойной записи.Change-Data Capture
Чтение write-ahead log базы данных для стриминга каждого изменения строки как события — Debezium, Postgres logical replication и операционные ловушки.UX при eventual consistency
Optimistic UI, разрешение конфликтов, индикаторы прогресса и возможности повтора — как сделать асинхронные системы отзывчивыми для пользователей.Всё вместе: event-driven service mesh
Сквозное проектирование pipeline обработки заказов — outbox, Kafka topics, consumer groups, CDC, dead-letter queues и observability.Проекты по этому треку
Guided-проекты, которые закрепляют изученное здесь.
Очередь задач at-least-once
Собери долговечную очередь задач на Postgres с visibility timeout и идемпотентными консьюмерами, чтобы упавший воркер не терял задачу.
Совместные курсоры
Показать живой курсор и выделение каждого подключённого пользователя в общем документе, без конфликтов, через WebSocket.
Планировщик задач
Планировщик задач cron + backoff с доставкой at-least-once, идемпотентными обработчиками и visibility timeout — чтобы ни одна задача не терялась молча, даже при краше воркера на середине выполнения.
Распределённые системы
Что ломается, когда система работает на множестве машин, — и как они договариваются, остаются доступными и не усугубляют сбои. Продвинутый уровень; сначала освойся хотя бы с одним бэкендом.