RU

Как корректно описать приём и обработку webhook

Webhook часто воспринимают как простой механизм доставки уведомлений: пришло событие — обработали — вернули 200. На практике именн…

системный анализсистемный аналитиктребованияwebhookинтеграцииAPIраспределённые системыидемпотентностьобработка событийотказоустойчивость
Habr
RU

Как сделать приложение быстрым и надёжным с помощью межсервисных запросов

Микросервисы обещают независимость и гибкость, но вместе с этим добавляют новый класс проблем: задержки между сервисами, каскадные сбои и сл…

микросервисная архитектурамежсервисное взаимодействиераспределённые системыAPI Gatewayагрегатор данныхGraphQLCQRSотказоустойчивостьмасштабирование системпаттерны проектирования
Habr
RU

[Перевод] Генератор ID для микросервисной архитектуры: гайд по масштабированию целочисленных идентификаторов

В распределённых системах генерация уникальных ID быстро становится архитектурной задачей: центральная база создаёт узкое место, а переход на UUID мож…

микросервисная архитектурамонолитраспределённые системыотказоустойчивостьгенерация идентификаторовмасштабирование системархитектура приложенийDynamoDBMySQL
Habr
RU

Как тестируют баги, которые невозможно воспроизвести

Редкий сбой в распределённой системе может месяцами ускользать от команды, а при попытке воспроизведения исчезать из‑за изменившег…

детерминированное тестированиераспределённые системывоспроизводимость ошибокотказоустойчивостьасинхронные системыконкурентное выполнениеfault injectionфаззингFoundationDBTigerBeetle
Habr
RU

[Перевод] 9 AI-агентов делят одну API-квоту. Почему обычные ретраи только ломают систему

Девять AI-агентов делят одну API-квоту — и один ответ 429 быстро превращается в каскадный отказ всей системы. В этой статье разбираемся, почему станда…

AI-агентымультиагентные системыrate limitingограничение запросовAPI-квотыCircuit Breakerраспределённые системыbackpressureRedis
Habr
RU

Eventual Consistency: как мы починили тормоза апрува и сломали бюджет

Мы убрали одну блокировку, чтобы апрувы перестали тормозить. Через несколько недель из-за этого клиент пробил квартальный бюджет – а наша система этог…

eventual consistencyсогласованность данныхCQRSоптимистичная блокировкаEF Coreпроекцииsagaидемпотентностьраспределённые системыread model
Habr
RU

Idempotency keys: 5 граблей, которые мы поймали на проде

Пятница, 23:47. PagerDuty: “Платёж AmEx, провайдер вернул 5xx три раза подряд, билеты не зарезервированы.” Открываю логи – действительно три ответа пр…

идемпотентностьidempotencyплатежираспределённые системы.NETC#APIintent-keyrace conditionграбли
Habr
RU

Репликация по DDIA: что я понял, только когда сам сломал прод

В понедельник утром бухгалтер из клиентской компании написала мне в Telegram: «У контрагента в SAP всё оплачено, а в Smartup долг 12 миллионов». Я отк…

DDIAрепликацияmulti-leaderраспределённые системысинхронизация данныхSAP Business OneHANAконфликты репликацииlast-write-winsидемпотентность
Habr
RU

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

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

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