Как исключить повторную отправку отложенных писем при горизонтальном масштабировании? область: распределённые системы, messaging ключевая проблема: конкуренция при отправке между несколькими инстансами решение 1 —…
Как использовать suspendCancellableCoroutine для работы с колбэками? Kotlin coroutines Преобразует колбэки в suspend-функции Приостанавливает выполнение до получения результата Поддерживает отмену корутины…
Как исправить использование CountDownLatch с неатомарным счётчиком? проблема: счётчик не является атомарным, поэтому возникают состояния гонки решение 1: использовать AtomicInteger вместо обычного счётчика (если это…
Как корректно настроить http.Server.Shutdown для воркеров и ресурсов Контекст: graceful shutdown HTTP-сервера в Go http.Server.Shutdown выполняет плавную остановку: прекращает приём новых соединений и ожидает…
Как корректно отменять горутины, выполняющие долгие операции? для управления долгими горутинными операциями в Go используется контекст следует применять context.Context вместе с отменой (CancelFunc) context нужно…
Как корректно отменять корутины и какие средства для этого применяются? Управление корутинами в Kotlin/Coroutine строится вокруг контекста отмены Отмена передаётся по иерархии контекстов: при отмене родителя…
распределённая публично-подписная система потоковой обработки событий (event streaming) масштабирование выполняется за счёт партиционирования топиков каждый топик разделён на партиции, что обеспечивает параллельную…
Корутина — лёгкая функция, которую можно приостанавливать и возобновлять; она реализует кооперативную многозадачность Таск (Task) — абстракция работы, способной выполняться асинхронно; для этого он часто использует…
Как параллельно получить данные из 4 независимых систем через CompletableFuture? Java concurrency и асинхронное выполнение CompletableFuture — оболочка для асинхронных вычислений Запускать каждый запрос в пуле потоков…
Exactly-once обработка в Kafka: как реализовать и что учесть Тема: обработка сообщений, Kafka, идемпотентность В основе exactly-once находится транзакционная запись в Kafka через Transaction API Применяется…
Это задача из сферы конкурентного программирования. Проблема заключается в том, что инкремент не является атомарной операцией, поэтому возможна гонка данных. Решение 1 — применить мьютексы/локи: они ограничивают…
Дедупликация событий в Kafka для Exactly-Once без транзакций категория: реализация Exactly-Once без транзакционного механизма главная задача — не допустить повторной обработки дублирующихся сообщений базовый принцип —…