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идемпотентность