RU

[Перевод] Сегфолт в glibc, 345 тысяч утёкших сокетов и 474 тысячи соединений за полминуты: шесть багов в одной цепочке

Плановые работы в сети раз за разом валили процессы Kafka: segfault в DNS-резолвере glibc, сотни тысяч утёкших UDP-сокетов, полмиллиона TCP-соединен…

glibcDNSKafkaOCamlsegfaultsocketslinuxdebugging
Habr
RU

Как мы сократили поток событий в 600 раз с помощью FlinkSQL

Привет! Меня зовут Сергей Прокопкин , я развиваю мотивационную программу и отвечаю за realtime-систему трекинга заданий в  Авито .  В моти…

Kafkaflinkbackendstream processinghighloadархитектура системыоптимизация производительностиreal-time streamingdistributed systemsevent-driven architecture
Habr
RU

DataSafeS3 1.5.0: доставка событий и переключение Postgres с отчётом

В DataSafeS3 1.5.0 я переделал доставку событий. Раньше вебхук уходил после записи метаданных, и если сервер падал между записью и отправкой, событи…

S3объектное хранилищедоставка событийотказоустойчивостьKafkaNATS JetStreamвебхукиаудитself-hostedopen source
Habr
RU

Как опубликовать внутренний API из DMZ, если соединения в LAN запрещены: пять подходов, которые мы проверили

Как опубликовать внутренний API из DMZ, если соединения в LAN запрещены: пять подходов, которые мы проверили Все пять схем мы собирали на  NEOM…

APIDMZАрхитектураБезопасностьHAProxyKafkaActiveMQ ArtemisWSO2NeoflexJava
Habr
RU

С системой, которую нельзя менять, не интегрируются. Её можно только зеркалить

Ты не владеешь источником — значит, не владеешь временем. Как поллер по updated_at молча теряет строки, почему exactly-once это свойство твоей запис…

Kafkaинтеграция1СERPидемпотентностьсверка данныхupdated_at
Habr
RU

Kafka гарантирует порядок? Разбираем 3 инцидента с Outbox

Один ключ на все события заказа — и кажется, что порядок гарантирован. А потом клиенту приходит «Ваш заказ собран» раньше, чем «Оплата получена», ви…

Kafkatransactional-outboxPostgreSQLDebeziumCDCevent-orderingсистемный-анализнефункциональные-требованияidempotency
Habr
RU

Распилили монолит на 6 сервисов — и случайно собрали распределённый монолит: где мы ошиблись с границами

Монолит документооборота, менеджмент говорит: «пора пилить на микросервисы». Мы нарезали шесть сервисов, сверху повесили API Gateway, Load Balancer…

микросервисымонолитдекомпозиция монолитараспределённый монолитграницы сервисовbounded contextDDDKafkaCircuit Breaker
Habr
RU

Лаг растёт, консьюмеры простаивают: диагностика Kafka по трём таймерам

Лаг Kafka растёт, консьюмеры простаивают, а добавление новых экземпляров только ускоряет проблему. Разберём, как по состоянию consume…

Kafkaконсьюмерыconsumer groupлагперебалансировкапартициидиагностика Kafkaобработка сообщенийтаймаутыпроизводительность
Habr
RU

Архитектура TMS на .NET: кластер, потоки координат и объектное хранилище

Это разбор архитектуры системы управления транспортом — без сроков, без смет и без сравнения технологий по галочкам. Только устройство: из чего сист…

архитектура.NETинтеграцияEIPKafkaRabbitMQRedisPostgreSQLкластерпартиционирование
Habr
RU

Разработчики знали код. Никто не знал систему

Мне поручили доработать высоконагруженную подсистему аудита. Документации было много, специалистов тоже, но никто не мог описать сист…

Системный анализвысоконагруженные системыаудит событийlegacy-системыанализ исходного кодаKafkaMongoDBPostgreSQLYDBархитектурное исследование
Habr
RU

Контракты данных между командами: гайд по data contracts в дата‑пайплайнах

Когда пайплайн отработал без ошибок, тесты зелёные, а в дашборде внезапно нули, проблема может быть не в инфраструктуре, а в отсутствии договорённос…

контракты данныхdata contractsдата-пайплайныDWHData LakeData EngineeringdbtKafkaSchema Registryкачество данных
Habr
RU

redb.Route — Apache Camel для .NET, который мы написали потому что выхода другого не было

У вас не 5 микросервисов — у вас  десятки . Бэкенд, который рос три года: монолит, расколотый на куски, GPS-фид от автопарка, мобильное приложе…

C#.NETESBEIPApache CamelKafkaRabbitMQинтеграцииopen-sourceredb.Route
Habr
RU

Cache is hard — почему инвалидация кэша — это проблема согласованности, а не производительности

Кэш часто воспринимают как простой способ ускорить систему: положили данные ближе к приложению — получили быстрый ответ. Но&nbsp…

кэшированиеинвалидация кэшасогласованность данныхраспределённые системыRedisPostgreSQLCDCKafkaTTLвысоконагруженные системы
Habr
RU

Очереди в микросервисах: 5 ошибок, которые приводят к дублям и потерям

Почему добавление второго consumer«а в очередь может привести к двойным списаниям? Разбираем на реальном кейсе: как один Topic с…

очереди сообщениймикросервисыброкеры сообщенийRabbitMQKafkaJMSpublish-subscribecompeting consumersидемпотентностьDead Letter Queue
Habr
RU

Полный гайд по каналам обмена сообщениями: от теории к реальным кейсам

Первая статья из цикла о каналах обмена сообщениями. Разбираем архитектурные дилеммы, конкурирующих потребителей, message storm, гарантиро…

архитектура ПОинтеграцияобмен сообщениямиканалы сообщенийJavaKafkaмикросервисы
Habr
RU

[Перевод] Ваш Kafka lag врёт: как настроить алерты по реальной задержке, а не по числу сообщений

Алерт по Kafka lag выглядит убедительно, пока не приходится объяснять, что именно значат «50 000 сообщений отставания» для пользователей и SLA. В ст…

Kafkaconsumer lagмониторинг Kafkaалертыtime lagPrometheusGrafana
Habr
RU

[Перевод] Паттерны событийно-ориентированной архитектуры в облачном банкинге: что работает, а что ломает систему

Событийно-ориентированная архитектура часто выглядит как аккуратная схема с брокером, сервисами и красивыми стрелками между ними. В продакшене всё п…

event-driven architectureedacloud-nativeбанковские системымикросервисыKafkaoutboxinboxидемпотентность