Risk Management

Federal Reserve

Federal Reserve Board announces approval of application by Fleur Capital Corporation

Открыть оригинал ↗ Перевод заголовка: Федеральная резервная система одобрила заявку Флёр Кэпитал Корпорейшн на приобретение Симмспорт Стейт Банка

Федеральная резервная система объявила о подтверждении заявки Флёр Кэпитал Корпорейшн на приобретение Симмспорт Стейт Банка, банка в Симмспорте, штат Луизиана. Решение было принято в пятницу, 2 октября 2026 года, и касается структурного перераспределения финансовых институтов в регионе. Официальный статус одобрения подтверждает соответствие требованиям по надежности, капиталовому покрытию и регуляторным стандартам.

  • Решение касается только финансового приобретения, без изменения структуры управления или операционных процессов.
  • Подтверждение одобрения не означает автоматического включения в систему сопровождения или мониторинга.
  • Утверждение ведёт к обязательству по соблюдению норм в области прозрачности и защиты клиентов.
  • В случае нарушения условий в будущем может быть инициирован процесс реорганизации или возврата.
  • Регуляторные органы оставляют за собой право на проверку в течение 12 месяцев после вступления в силу решения.

Когда пригодится

Материал полезен для банковских институтов, планирующих расширение в регионах с низкой конкуренцией, а также для регуляторов, анализирующих динамику слияний в секторе сельских банков.

Вопросы для размышления

  1. Какие конкретные критерии были использованы для оценки соответствия Флёр Кэпитал Корпорейшн требованиям по капиталовому покрытию?
  2. В каких сценариях может быть инициирован процесс отзыва одобрения, и как это отражается на репутации банка?
  3. Какова вероятность, что подобное решение повлияет на регуляторные подходы к другим малым банкам в регионе?

Federal Reserve Board announces it will extend, until November 4, the comment period on its proposal to modernize Regulation O

Открыть оригинал ↗ Перевод заголовка: Федеральная резервная система продлит срок подачи замечаний по предложению о модернизации регулирования O

Федеральная резервная система продлила срок подачи замечаний по своему предложению о модернизации регуляции O, которая устанавливает правила кредитования банками своих руководителей, директоров и крупных акционеров. Срок подачи комментариев был продлен с 5 октября до 4 ноября, чтобы заинтересованные стороны имели больше времени на анализ и подготовку отзывов.

  1. Регуляция O касается кредитов, выделяемых банками своим внутренними лицам, что может повлиять на независимость решений по кредитованию.
  2. Продление срока позволяет участникам рынка, включая банки и регуляторы, глубже изучить последствия изменений.
  3. Продленный период подчёркивает значимость вопроса о прозрачности и независимости в банковской деятельности.
  4. Важно, что комментарии могут повлиять на итоговую форму регуляции, что делает процесс открытой и вовлекающей.
  5. Новый срок подчёркивает стремление ФРС к более гибкой и адаптивной системе регулирования в условиях изменяющейся банковской среды.

Когда пригодится

Материал полезен для банков, юридических консультантов и регуляторов, которые хотят вовремя оценить влияние изменений в регуляции на внутренние кредитные практики и подготовить стратегические ответы.

Вопросы для размышления

  1. Какие конкретные изменения в регуляции O могут привести к снижению рисков конфликта интересов, и как это может быть оценено в условиях нестабильной экономики?
  2. В каких сценариях может возникнуть несоответствие между новой регламентацией и практиками крупных банков, и как это может повлиять на надёжность системы?
  3. Какова оценка сложности реализации новых требований для малых и средних банков, особенно в условиях ограниченных ресурсов и IT-инфраструктуры?

ISDA

Updated OTC Derivatives Compliance Calendar

Открыть оригинал ↗ Перевод заголовка: Обновлённый календарь соблюдения нормативных требований в сфере OTC-деривативов

ISDA представила обновлённый глобальный календарь сроков соблюдения нормативных требований и дат регуляторных событий в сфере OTC-деривативов. Документ охватывает ключевые даты по внедрению правил, включая обязательства по расчёту и хранению маржи, а также сроки введения новых нормативов. Важность календаря заключается в том, что он помогает участникам рынка планировать соблюдение требований в сроки, которые могут меняться в зависимости от региона и типа инструмента.

  1. Календарь включает даты вступления в силу обязательств по расчёту начальной маржи (Initial Margin) в соответствии с ISDA Standard Initial Margin Model — это критически важный элемент для оценки рисков и структурирования позиций.
  2. Для участников рынка календарь предоставляет прозрачные сроки внедрения новых регуляторных требований, что позволяет избежать несоответствий и сократить риски неисполнения обязательств.
  3. Внедрение новых нормативов, таких как стандарты по документированию транзакций по выбросам (emissions), подчёркивает тенденцию к цифровизации и автоматизации процессов в OTC-сегменте.
  4. Усиление роли ISDA в разработке цифровых решений, включая DRR (Digital Regulatory Reporting) и Notices Hub, указывает на переход от бумажных к автоматизированным системам отчётности.
  5. Календарь актуален для всех участников рынка OTC-деривативов, включая банки, институциональных инвесторов и посредников, и должен быть регулярно обновлён.

Когда пригодится

Материал особенно полезен для финансовых институтов, работающих в сфере OTC-деривативов, которые должны своевременно внедрять новые регуляторные требования, особенно при планировании расчётов маржи и отчётности по выбросам.

Вопросы для размышления

  1. Какие риски могут возникнуть, если организация не учитывает региональные различия в датах вступления в силу требований, указанных в календаре?
  2. В каких условиях ISDA Standard Initial Margin Model может показывать нестабильность при оценке рисков для крупных позиций?
  3. Какова сложность реализации цифровой отчётности (DRR) в условиях отсутствия единого стандартного интерфейса между системами участников?

AI

Cloudflare Blog

Follow the thread: a new dashboard to investigate account abuse

Открыть оригинал ↗ Перевод заголовка: Следите за потоком: новый дашборд для расследования злоупотреблений аккаунтами

Традиционные методы борьбы с мошенничеством основывались на проверке идентичности в конкретный момент времени — например, через пароль или биометрическую аутентификацию. Сегодня, благодаря широкому распространению искусственного интеллекта, злоумышленники могут создавать фальшивые идентичности, комбинируя утечки данных с синтетическими медиа, что делает проверки в момент времени недостаточными. Вместо этого требуется модель доверия, основанная на поведении аккаунта во времени — не просто проверка текущего состояния, а сравнение с историческими паттернами.

  1. Дашборд Cloudflare для Account Abuse Protection (AAP) создаёт персонализированные профили аккаунтов на основе истории входов и регистрации, включая сетевые и устройства-сигналы.
  2. Пользователи могут анализировать масштабы подозрительной активности на уровне всей аудитории — например, рост количества неудачных входов или концентрации событий в определённых странах или ASNs.
  3. Система позволяет фильтровать аккаунты по критериям, таким как количество неудачных попыток, совпадение с утечками паролей и количество уникальных IP-адресов, чтобы сократить объём ручного анализа.
  4. В отдельном просмотре аккаунта доступны детали по событиям: временные метки, Ray ID и применённые меры, что помогает воссоздать последовательность действий.
  5. Пользователи могут использовать Hashed User ID в правилах WAF для блокировки будущих запросов, а также настроить доступ по принципу наименьших привилегий, разделяя права на просмотр и доступ к персональным данным.

Когда пригодится

Материал полезен для команд безопасности, работающих с автоматизированным мошенничеством, когда важно выявлять не просто отдельные события, но и долгосрочные паттерны поведения, а также при наличии больших объёмов входов и регистраций, где требуется быстрое и точное выявление подозрительных аккаунтов.

Вопросы для размышления

  1. Какой компромисс между глубиной анализа и скоростью обнаружения может возникнуть при использовании фильтров по количеству неудачных попыток и IP-адресов, если в реальности многие легитимные пользователи используют разные устройства и сети?
  2. В каких условиях (по масштабу атаки, типу поведения, времени суток) модель поведения может начать давать ложноположительные результаты, и как это может повлиять на принятие решений о блокировке аккаунтов?
  3. Какова сложность по времени и ресурсам для воссоздания истории входов по одному аккаунту при наличии тысячи событий, и как это может повлиять на производительность системы в production?

Introducing Web Search API via AI Gateway

Открыть оригинал ↗ Перевод заголовка: Введение Web Search API через AI Gateway

Новый Web Search API от Cloudflare позволяет агентам не просто гадать на случайных URL-адресах, а искать актуальную информацию на веб-сайтах, как человек делает через поисковую систему. Это решает проблему устаревшего контекста моделей ИИ, обеспечивая доступ к живым, обновляемым данным — например, новым продуктам или изменениям в API.

  1. Веб-поиск встраивается в инференс-пайплайн через AI Gateway, позволяя моделям получать свежие, структурированные фрагменты информации из интернета.
  2. Пользователи получают прозрачные результаты: каждый запрос возвращает ссылку на исходный источник, а кrawler должен соблюдать правила robots.txt и быть зарегистрирован как «проверенный бот».
  3. Поддерживается прозрачность данных — есть партнёры с политикой «нулевого хранения данных» (ZDR), и цена устанавливается на уровне партнёров без маржи.
  4. Интеграция доступна через REST API и прямые биндинги в Cloudflare Workers, что упрощает внедрение в существующие приложения.
  5. В будущем в AI Gateway появятся встроенные серверные инструменты, включая веб-поиск, что снизит необходимость ручного управления инструментами.

Когда пригодится

Материал полезен, когда ваша система требует актуальности данных — например, при работе с динамическими новостями, обновлениями API или продуктами, где важна свежесть информации.

Вопросы для размышления

  1. Какова граница между «свежими» и «неактуальными» результатами веб-поиска, и как это влияет на надёжность выводов агентов в условиях быстрого изменения контента?
  2. В каких сценариях использование ZDR-партнёров может привести к потере полезной информации, и как это может повлиять на качество ответов агентов?
  3. При каких условиях веб-поиск может привести к ошибочным выводам, если не учитывать контекст источника или структуру ответа?

Habr AI

LLM работает не на одной видеокарте: анатомия AI-инфраструктуры 2026

Открыть оригинал ↗ Перевод заголовка: LLM работает не на одной видеокарте: анатомия AI-инфраструктуры 2026

Развертывание крупных моделей LLM — это не просто вопрос памяти одной видеокарты, а сложная система, где узкое место может быть в памяти GPU, KV-кеше, сети или даже на дисках. Модель не только занимает память, но и динамически растёт по мере диалогов, а вычисления делятся между картами и серверами. Важно понимать, что даже при наличии мощных ускорителей, реальная производительность определяется не только вычислительной мощностью, но и скоростью передачи данных между компонентами — от NVLink до сетевых адаптеров. В системах с MoE (миксом экспертов) память растёт как у гиганта, а вычисления — как у середнячка, что требует глубокого понимания архитектуры и нагрузки.

  1. Память GPU — ключевое ограничение: даже при использовании HBM3 или HBM4, веса 70B в BF16 не влезают в одну карту, и кеш растёт с каждым диалогом.
  2. KV-кеш может занимать до 3/4 объёма весов при длинных диалогах, что делает его главным узким местом под нагрузкой.
  3. Сеть между картами (NVLink, InfiniBand) становится критичной: скорость передачи данных напрямую влияет на время генерации ответа и эффективность параллелизма.
  4. Модели с MoE требуют хранения всех параметров, но активируются только частью — это создаёт асимметрию между памятью и вычислительной нагрузкой.
  5. В реальных условиях эффективность зависит не только от аппаратных характеристик, но и от топологии сети, распределения нагрузки и наличия кэширования на дисках.

Когда пригодится

Материал полезен при проектировании инфраструктуры для запуска LLM в production — особенно при выборе серверов, распределении моделей и оценке нагрузки на память и сеть.

Вопросы для размышления

  1. Какой компромисс между памятью GPU и скоростью сети возникает при использовании MoE-моделей с 1 трлн параметров, если активные эксперты составляют лишь 10% от общего объёма?
  2. В каких условиях tensor parallelism может привести к более серьёзным задержкам, чем pipeline parallelism, и как это влияет на выбор архитектуры для сервиса с высокой нагрузкой?
  3. Какой минимальный объём NVMe и RAM необходим для эффективного кэширования KV-кеша при работе с диалогами длиной более 100 тысяч токенов и 100 одновременных пользователей?

FAIRouter. Мы научили ИИ выбирать лучшую LLM модель для каждой задачи

Открыть оригинал ↗ Перевод заголовка: FAIRouter. Мы научили ИИ выбирать лучшую LLM модель для каждой задачи

FAIRouter — это система, которая автоматически выбирает оптимальную большую языковую модель (LLM) в зависимости от конкретной задачи, учитывая качество, стоимость и время выполнения. Вместо жесткой привязки к одной модели, система использует обучаемый роутер и «судью» — ИИ-оценщик, который проверяет ответы и корректируется на основе обратной связи от человека. Алгоритм выбирает модель не по промпту, а по признакам задачи: сложности, области, стиля и формата, что делает подход более приближённым к реальным бизнес-сценариям.

  1. FAIRouter использует метрику качества, включающую 8 критериев содержания (например, полноту по сути, верность рассуждений) и 20 параметров формы (стиль, объем, структура), что позволяет оценить не только правильность, но и соответствие ожиданиям пользователя.
  2. Система обучается на двух контурах: роутер предсказывает модель до выполнения задачи, а судья оценивает результат после — оба компонента корректируются на основе человеческой обратной связи.
  3. Признаки задачи берутся из реальных данных: сервисов Fractal Agents, Арены, GDPval и исследования OpenAI, что обеспечивает высокую практическую релевантность и избегает абстрактных бенчмарков.
  4. Важный архитектурный элемент — шкала терминологии, калиброванная с помощью жёстких опорных точек, чтобы избежать искажений при оценке научных и бытовых текстов.
  5. Система не просто выбирает модель — она устанавливает «планку качества» для каждого шага бизнес-процесса и гарантирует, что даже при смене моделей ответ остаётся надёжным.

Когда пригодится

Материал особенно полезен в компаниях, где используются LLM для автоматизации рабочих процессов (например, генерация отчётов, ответы клиентам, анализ данных), и где критичны как качество, так и стоимость ответа. Когда задачи разнообразны и не поддаются обобщению, а пользователь не может позволить себе использовать дорогие модели постоянно.

Вопросы для размышления

  1. Какой компромисс между точностью оценки качества и скоростью обучения может быть в системе FAIRouter при работе с небольшим объёмом пользовательских данных?
  2. В каких сценариях может привести к сбоям использование шкалы терминологии без внешней проверки фактов (например, при генерации технических отчётов)?
  3. Как изменится поведение роутера, если ввести ограничение на максимальную стоимость ответа, не учитывая при этом качество и время выполнения?

Зачем Авито нужна своя Inference-платформа для ML/LLM-сервисов: PaaS vs отдельное решение

Открыть оригинал ↗ Перевод заголовка: Зачем Авито нужна своя Inference-платформа для ML/LLM-сервисов: PaaS vs отдельное решение

Авито столкнулся с тем, что существующий PaaS, оптимизированный для CPU-сервисов, несёт в себе фундаментальные несоответствия при работе с ML и LLM-моделями. Веб-сервисы и ML-инференс требуют разных подходов: отдельная платформа нужна для решения задач, связанных с GPU-использованием, динамическим батчингом, очередями запросов, отказоустойчивостью и масштабированием, которые не укладываются в архитектуру PaaS.

  1. ML/LLM-инференс требует специфических механизмов — динамического батчинга, управления очередями, оптимизации GPU-загрузки — которые не работают в стандартных веб-сервисах и не могут быть встроены в PaaS без риска стабильности.
  2. Обновление моделей LLM — это не просто обновление кода, а процесс загрузки десятков гигабайт данных, прогрева движка и инициализации, что делает невозможным быструю и безопасную перезагрузку.
  3. Масштабирование по CPU/RAM не отражает реальную нагрузку на GPU, где latency растёт нелинейно с длиной контекста и количеством одновременных запросов.
  4. Платформа должна абстрагировать сложные архитектуры GPU, разные версии CUDA и квантование моделей, чтобы бизнес-логика не зависела от железа.
  5. Вместо доработки PaaS, Авито выбрал отдельную Inference-платформу на базе KServe, чтобы избежать компромиссов и обеспечить гибкость, надёжность и быструю адаптацию к новым моделям.

Когда пригодится

Материал полезен для команд, которые уже используют PaaS для веб-сервисов и планируют внедрять ML/LLM-модели, особенно при наличии значительных нагрузок на GPU и сложных сценариев обработки запросов.

Вопросы для размышления

  1. Какой компромисс может возникнуть при попытке интегрировать динамический батчинг в PaaS, если не учитывать влияние на latency запросов с разной длиной последовательностей?
  2. В каких условиях отдельная Inference-платформа может стать менее эффективной, чем доработка PaaS, особенно при небольшой нагрузке на GPU и минимальных требованиях к масштабированию?
  3. Какие риски связаны с выбором KServe вместо других open-source решений, если компания планирует в будущем использовать не только LLM, но и другие типы моделей (например, CV, рекомендации) с разными профилями нагрузки?

Безопасники против хакеров: симметрия инструментов и асимметрия скоростей

Открыть оригинал ↗ Перевод заголовка: Безопасники против хакеров: симметрия инструментов и асимметрия скоростей

Специалисты по информационной безопасности и киберпреступники сегодня используют одинаковые AI-инструменты — от LLM до генерации фишинговых шаблонов — но в противоположных направлениях. Мошенники, благодаря ИИ, развертывают фишинговые платформы за минуты, меняют домены за секунды и масштабируют операции в реальном времени, что делает реактивные блокировки и традиционные системы защиты устаревшими и неэффективными.

  1. ИИ-агенты (например, Claude Code, Gemini) позволяют проводить пентест без написания кода — исследователь задаёт цель, а ИИ выбирает инструменты, собирает пейлоады и анализирует ответы.
  2. Фишинговые платформы, такие как «13 в 1», построены на открытых кодах и доступны за 20 юаней — они включают шаблоны для разных регионов, автоматизированные процессы развертывания и генерацию поддельных скриншотов.
  3. Системы управления заказами и Telegram-боты в админках содержат личные данные жертв, а также структурированные группы с KPI, операционными лидерами и «продавцами», что свидетельствует о полноценной кибер-компании.
  4. ИИ-генераторы фронтенда (вроде Tailwind UI) создают «vibe purple»-палитру, которая стала индикатором фишинга — её можно использовать как признак для автоматического детектирования.
  5. Традиционные системы защиты работают по схеме «жалоба → анализ → блокировка», что делает их реактивными и неспособными к предотвращению атак на ранних стадиях.

Когда пригодится

Материал полезен для команд по информационной безопасности, работающих в условиях высокой скорости и автоматизации атак — особенно при разработке проактивных систем детекции, интеграции LLM-классификаторов в браузеры и построении трансграничных сетей обмена инфраструктурными артефактами.

Вопросы для размышления

  1. Какой компромисс между производительностью и надёжностью может возникнуть при внедрении локальных LLM-классификаторов на стороне пользователя, если модель ошибается в 5% случаев по фишинг-предсказаниям?
  2. В каких условиях (по масштабу, типу атак, времени реакции) применение ИИ для автоматизации расследований может превзойти ручную работу, и какие архитектурные риски связаны с этим?
  3. Какова сложность по времени и ресурсам для построения сигнатуры движка фишинговой платформы, если она включает 85 столбцов в таблице и поддерживает 13 локальных шаблонов?

Prediction-Powered Smoothing как главный метод оценки качества современных нейросетей

Открыть оригинал ↗ Перевод заголовка: Prediction-Powered Smoothing как главный метод оценки качества современных нейросетей

Метод Prediction-Powered Smoothing (PP-S) решает ключевую проблему оценки нейросетей в условиях ограниченного количества ручных проверок: он позволяет получить надёжную оценку качества ИИ в узких категориях, где данные для прямой проверки крайне редки. Вместо того чтобы полагаться на автосудьи или жёсткие правила, PP-S интегрирует предсказания ИИ с ручной проверкой, используя статистическое сглаживание и заимствование знаний из смежных задач, чтобы минимизировать искажения и повысить надёжность оценок. Метод не улучшает саму модель, а даёт объективную оценку её работы в отдельных сценариях, особенно при отсутствии прямых человеческих данных.

  1. PP-S использует предсказания другой нейросети (например, LLM-судьи) и корректирует их с помощью ручного аудита на небольшой выборке, что позволяет выявить систематические ошибки.
  2. Метод заимствует логику оценки из смежных задач (например, проверки кода на C++ для оценки работы на Rust), что позволяет «расширить» данные без прямой проверки.
  3. Встроенный механизм самопроверки (DB-CV) позволяет автоматически выявлять и корректировать искажения в предсказаниях без привлечения внешних экспертов.
  4. PP-S даёт не только цифру оценки, но и оценку неопределённости, что делает выводы более интерпретируемыми для инженеров.
  5. Метод требует тщательно структурированного дерева данных и понимания математики, и не заменяет человека, а лишь снижает его объёмную нагрузку.

Когда пригодится

Материал особенно полезен при оценке нейросетей в специализированных или редких сценариях (например, проверка кода на редких языках, медицинские диагнозы, юридические вопросы), где собрать достаточное количество ручных проверок невозможно из-за редкости задач или высокой стоимости.

Вопросы для размышления

  1. Какой минимальный объём контрольной выборки живых экспертов необходим для того, чтобы PP-S не вводил систематические смещения в оценке, и как это влияет на масштабируемость метода?
  2. В каких случаях сглаживание через смежные задачи может привести к искажению оценки, если модель-судья в этих задачах имеет существенно отличающуюся логику или обучение?
  3. Какова сложность реализации PP-S в условиях, когда доступны только частичные данные по категориям, и как это может повлиять на надёжность искажений, выявленных DB-CV?

InfoQ Architecture

Engineering Production Systems for an Agentic Era: QCon San Francisco 2026

Открыть оригинал ↗ Перевод заголовка: Инженерные системы для эры агентов: QCon Сан-Франциско 2026

AI-агенты уже не просто участвуют в написании кода — они становятся активными пользователями производственных систем, инициируют действия клиентов, запрашивают данные о состоянии системы и влияют на процессы тестирования и релизов. Это заставляет старших инженеров переосмысливать границы доверия: где можно безопасно передавать решения агентам, а где — оставлять контроль за человеком. В QCon San Francisco 2026 представлены практические примеры из Airbnb, OpenAI, Netflix и Honeycomb, демонстрирующие, как внедрять агенты в реальные системы с учётом рисков, контроля и надёжности.

  1. Необходимы многоуровневые защитные механизмы (вводная очистка, классификаторы, тень-тестирование) для агентов, работающих с клиентскими данными, чтобы предотвратить нежелательные действия.
  2. Даже при высокой скорости генерации кода агенты не могут заменить человеческое решение по архитектуре, качеству и релизу — такие решения должны оставаться под прямым контролем.
  3. Оптимизация одной части системы (например, сжатия данных) может ухудшить производительность в других областях (задержки, совместимость, масштабируемость), что требует системного подхода к оценке компромиссов.
  4. Производственные системы должны быть «понятными» для агентов — через структурированные схемы, форматы ответов и экономику токенов, чтобы избежать неопределённости и ошибок.
  5. Важно разграничивать, где агенты могут действовать автономно, а где требуется прямое вмешательство инженеров — особенно в критических сценариях.

Когда пригодится

Материал полезен для инженеров, работающих над введением AI-агентов в производственные системы, особенно в областях, где риски для пользователей или бизнеса высоки — например, в поддержке клиентов, управлении конфигурациями или релизах.

Вопросы для размышления

  1. Какие конкретные критерии и метрики можно использовать для оценки того, насколько безопасно передавать решение агенту по изменению конфигурации системы, если это может повлиять на стабильность?
  2. В каких условиях (по масштабу, нагрузке, типу системы) сжатие данных в кэше может привести к критическим сбоям в производительности, и как это можно предсказать на ранних стадиях?
  3. Какой минимальный объём данных и структурированности в API необходим, чтобы агент мог надёжно интерпретировать его и не генерировать ошибочные действия?

DigitalOcean Managed Agents Brings Managed Cloud Infrastructure to AI Agents

Открыть оригинал ↗ Перевод заголовка: DigitalOcean Managed Agents вводит управляемую инфраструктуру для ИИ-агентов

DigitalOcean представил сервис DigitalOcean Managed Agents в публичной предварительной версии, который предоставляет управляемую инфраструктуру для ИИ-агентов с изолированными средами выполнения на основе микровиртуальных машин, контролируемым доступом к инструментам и серверным инференс-модулями. Традиционные подходы к развертыванию агентов требуют от разработчиков самостоятельного управления контекстом, сохранением состояния и распределением задач, что создаёт сложности в масштабировании и безопасности. Новый сервис объединяет Harness Runtime и Action Gateway, позволяя автоматизировать выполнение, сохранение состояния, доступ к инструментам и инфраструктурные операции.

  1. Harness Runtime обеспечивает изолированные, устойчивые среды выполнения для агентов (включая Claude Code, Hermes, LangGraph), с возможностью паузы, возобновления и разветвления сессий, а также автоматического перехода в режим ожидания при отсутствии активных запросов.
  2. Сессии запускаются параллельно по репозиториям и задачам, что поддерживает распределённые паттерны работы, такие как «разделяй и властвуй» или совместная работа.
  3. Action Gateway предоставляет доступ к более чем 16 000 инструментов через единый MCP-интерфейс, включая интеграции с GitHub, Stripe, HubSpot и API DigitalOcean, с механизмами контроля доступа, одобрения человека и защиты от перегрузки.

Когда пригодится

Материал особенно полезен для команд, разрабатывающих ИИ-агенты в production-среде, где требуется стабильность, масштабируемость и безопасный доступ к внешним сервисам без необходимости вручную управлять виртуальными машинами и инфраструктурой.

Вопросы для размышления

  1. Какие критические компромиссы могут возникнуть при использовании режима «пауза при инактивности» в условиях высокой нагрузки на агенты, если они должны быстро реагировать на изменения в контексте?
  2. В каких сценариях может привести к снижению производительности или нестабильности использование ограничений скорости (rate limiting) в Action Gateway при работе с инструментами, требующими быстрые ответы?
  3. Какой вклад в общую надёжность системы может дать отсутствие прямого доступа к внутренним сервисам через безопасные, изолированные каналы, если агенты должны взаимодействовать с критически важными системами?

Latent Space

Inside-Out AI: Rebuilding Airbnb Behind the Scenes and Across the Guest Experience

Открыть оригинал ↗ Перевод заголовка: Inside-Out AI: Перестройка Airbnb снутри и в пользовательском опыте

Ахмад Аль-Дахль, ранее ведущий разработку моделей Llama в Meta, теперь трансформирует Airbnb, внедряя AI как часть внутренних процессов и пользовательского опыта. Вместо того чтобы сначала создавать передовые модели, Airbnb использует их для ускорения разработки и автоматизации ключевых сервисов — так называемый подход «внутри-наружу». В результате 60% кода компании теперь написан AI, количество новых функций выросло почти на 80%, а пропускная способность запросов в разработке увеличилась в 1,6 раза.

  1. Airbnb внедряет «прототипы как основной артефакт» — вместо традиционных документов (требования, дизайн) команды работают напрямую с кодом, что сокращает время разработки и уменьшает риски передачи между командами.
  2. В поддержке AI решает около 50% обращений, используя синтетические данные для тестирования перед запуском в продакшен, при этом сохраняя контроль над критическими случаями, требующими вмешательства человека.
  3. Инструмент Everest — контекст-граф с использованием LLM, векторных эмбеддингов и поиска — позволяет разработчикам без специализированных знаний работать над сложными сервисами, как в случае с доставкой продуктов и выездами в аэропорты.
  4. Компания использует разные модели в зависимости от задачи: для кодинга применяются самые передовые модели (высокая надежность), для поиска — оптимизированные, пост-обученные, более быстрые и дешевые.
  5. Внедряется асинхронный агент AirChat, который запускается при срабатывании алертов, автоматически проводит диагностику и может закрыть инцидент, если он оказался ложным — это позволяет сократить нагрузку на операционные команды.

Когда пригодится

Материал полезен для компаний, стремящихся к внедрению AI в разработку и поддержку, особенно тех, где важны скорость развертывания, контроль качества и масштабируемость решений без потери человеческого контроля.

Вопросы для размышления

  1. В каких условиях асинхронные агенты могут привести к ухудшению качества инцидентов, если не будет должного контроля за их действиями и логикой принятия решений?
  2. Какие риски связаны с использованием пост-обученных моделей вместо передовых моделей в критических задачах, если их эффективность не подтверждена в реальных условиях?
  3. В каких сценариях может привести к потере квалификации разработчиков чрезмерное использование AI в генерации кода и решений, если не будет обязательного объяснения и обучения?

Java / Spring

Habr Java

[Перевод] Не каждый AI-вызов должен генерировать текст

Открыть оригинал ↗ Перевод заголовка: Не каждый AI-вызов должен генерировать текст

Новый проект Spring AI TypeSafe предлагает альтернативу чат-моделям: вместо генерации текста он отвечает на типизированные вопросы с числовыми ответами, обеспечивая скорость, структурированность и уверенность. Вместо шаблонов и парсинга система использует три примитива — Noul, Choice и Score — для классификации, оценки и выбора с соблюдением порогов уверенности. Всё это работает за 300–350 мс и стоит тысячные доли цента, делая его идеальным для проверки перед дорогими вызовами.

  1. Используйте атомарные, узкие вопросы (например, «какой отдел?») вместо одного широкого запроса — это позволяет параллельно обрабатывать несколько параметров без увеличения времени выполнения.
  2. Каждый вопрос имеет собственный порог уверенности, что позволяет детально оценивать риски и не скрывать ошибки, например, физически невозможные значения.
  3. Уверенность — не мера качества, а параметр маршрутизации: значение ниже 0.5 означает, что решение требует проверки человеком, а не отклоняется как «ошибка».
  4. Система поддерживает цикл self-refine (оценка → обратная связь → повтор) и guardrail (проверка входа/выхода), где последний имеет «последнее слово» и блокирует опасные ответы.
  5. Вместо генерации текста модель возвращает структурированные данные, что позволяет использовать её как дешёвый шлюз перед дорогими чат-вызовами без потери точности.

Когда пригодится

Материал особенно полезен в системах, где требуется быстрая, структурированная и проверяемая оценка входных данных — например, в маршрутизации запросов, классификации, проверке промптов или в качестве фильтра перед дорогими вызовами чат-моделей.

Вопросы для размышления

  1. В каких сценариях использование порога уверенности 0.5 может привести к ложному отклонению решения, и как это можно избежать без снижения производительности?
  2. Какой компромисс между количеством вопросов и точностью оценки в случае, когда каждый вопрос требует собственного порога, и как это влияет на масштабируемость при работе с тысячами запросов?
  3. При каких условиях self-refine может привести к бесконечному циклу, и как можно предотвратить это без увеличения времени выполнения или снижения надёжности?

DBML Diagram для IntelliJ IDEA с офлайн превью и открытым исходным кодом

Открыть оригинал ↗ Перевод заголовка: DBML Diagram для IntelliJ IDEA с офлайн превью и открытым исходным кодом

Плагин DBML Diagram для IntelliJ IDEA позволяет визуализировать схемы баз данных прямо в редакторе, не требуя подключения к внешним сервисам. Он поддерживает редактирование файлов .dbml в режиме Code + Preview, обеспечивая офлайн-представление диаграммы и возможность экспорта в SVG или PNG. В версии 0.1.0 реализованы базовые конструкции DBML — таблицы, поля, индексы, связи и комментарии — с валидацией ошибок и отображением предыдущего корректного состояния при синтаксических нарушениях.

  • Диаграмма строится локально, без подключения к базе данных или внешним сервисам, что обеспечивает полную автономность и безопасность.
  • Пользователь может вносить правки в .dbml и мгновенно оценивать изменения визуально, оставаясь в одном окне IDE.
  • Поддерживается экспорт диаграммы в SVG (для точного масштабирования) и PNG (для вставки в документы).
  • В режиме Code + Preview схема и текст описания находятся рядом, что упрощает синхронизацию кода и структуры базы.
  • Плагин использует встроенный в IDE компонент JCEF для отображения диаграммы, что исключает необходимость установки дополнительных инструментов.

Когда пригодится

Материал особенно полезен для команд, работающих в Git-репозиториях и использующих dbdiagram.io для совместного проектирования, когда важно быстро визуализировать и коммитить изменения схемы вместе с кодом без переноса правок вручную.

Вопросы для размышления

  1. Какой компромисс между точностью раскладки и производительностью может возникнуть при использовании алгоритма по слоям в плотных схемах с циклическими связями, и как это влияет на читаемость диаграммы при росте сложности модели?
  2. В каких сценариях может привести к нестабильности визуализация схемы при наличии дублирующихся элементов или ссылок на несуществующие таблицы, и как это может быть устранено на уровне парсера?
  3. Какова оценка рисков и сложности реализации синхронизации между визуальной диаграммой и текстовым DBML-описанием при вводе изменений через интерфейс, если не обеспечивается полная семантическая проверка?

System Design

AWS Architecture Blog

Deploy open source Regional availability tools in your VPC

Открыть оригинал ↗ Перевод заголовка: Разверните открытые инструменты для проверки региональной доступности в вашей VPC

Для построения архитектур с несколькими регионами в AWS ключевым вопросом становится: какие сервисы доступны в каждом регионе. Неправильный ответ может привести к сбоям в развертывании, нарушениям соответствия и задержкам запуска. В этой статье представлены два открытых инструмента, позволяющих развернуть данные о доступности сервисов прямо в вашей VPC: Capability Insights for AWS и Workload Analysis. Первый предлагает автоподгружаемую дашборд, обновляемую раз в сутки, второй фильтрует каталог сервисов под реальные активности вашей инфраструктуры, сокращая анализ на 90% и делая его доступным за 30 минут. Оба инструмента работают в вашем аккаунте, в вашей сети, с соблюдением политики безопасности и гейтинга, и позволяют контролировать данные в рамках вашей инфраструктуры.

  1. Capability Insights for AWS развертывает дашборд в вашей VPC, который автоматически обновляется раз в сутки и работает без внешних зависимостей при обычной эксплуатации.
  2. Инструмент использует API Gateway, Lambda и EventBridge для работы внутри VPC, обеспечивая приватность и безопасность доступа.
  3. Workload Analysis фильтрует 200+ сервисов по реальным вызовам (CloudTrail) и развертываниям (CloudFormation), сокращая анализ с тысяч экземпляров до 20–30 сервисов.
  4. Результаты доступны как через дашборд, так и через API, включая атрибуты, связанные с конкретными стеками и свойствами ресурсов.
  5. Инструменты интегрируются с существующими инфраструктурными элементами, включая S3, CloudTrail и CloudFormation, без дополнительных затрат.

Когда пригодится

Материал особенно полезен при планировании расширения в новые регионы, где важны требования к локализации данных и соответствию, а также при разработке стратегий восстановления после сбоев, где необходимо точно знать, какие сервисы доступны в каждом регионе.

Вопросы для размышления

  1. Какой компромисс между точностью фильтрации и временем анализа возникает при использовании Workload Analysis для больших аккаунтов с сотнями стеков?
  2. В каких сценариях может привести к ошибкам использование дашборда без фильтрации по реальным активностям (например, при наличии виртуальных сервисов в тестовой среде)?
  3. Какой минимальный объём логов CloudTrail и сколько стеков CloudFormation необходимо, чтобы Workload Analysis корректно идентифицировал 90% реальных сервисов в аккаунте?

Cloudflare Blog

2026 Birthday week: network performance update

Открыть оригинал ↗ Перевод заголовка: 2026-й Бодрый недельный обновлённый отчёт о производительности сети

Cloudflare стал самым быстрым провайдером в 74% из 1 000 крупнейших сетей мира — на 14 процентных пунктов больше, чем в апреле 2026 года. Улучшение достигнуто за счёт расширения охвата на 150 сетей и включения 38 новых стран, где Cloudflare теперь лидер по скорости. Оценка производительности основана на времени TCP-связи, измеряемом в реальных условиях через браузерные измерения, включая Cloudflare-ошибочные страницы и новые Challenge Pages.

  1. Введение метода измерений через Cloudflare Challenge Pages позволяет собирать данные в естественных сценариях использования — на веб-сайтах, где уже применяются CAPTCHA-механизмы, без вмешательства в поведение пользователя.
  2. Метод использует trimean (среднее из 25-й, 50-й и 75-й перцентилей), что снижает влияние выбросов и даёт более стабильную оценку производительности.
  3. Измерения ведутся в фоне, без дополнительных действий пользователя, и сохраняют конфиденциальность, что критично для доверия к технологии.
  4. Данные из Challenge Pages расширяют охват сетей — они охватывают не только топ-1000, но и более широкий спектр пользователей и географий.
  5. Более высокая плотность данных позволяет выявлять истинные различия между провайдерами, даже если они отличаются всего на 1–2 мс, и сокращает влияние ежедневных колебаний.

Когда пригодится

Материал полезен для тех, кто оценивает производительность интернет-инфраструктуры в реальных условиях, и хочет понять, как измерять производительность без вмешательства в пользовательский опыт, особенно в масштабах глобальных сетей.

Вопросы для размышления

  1. Какова вероятность того, что включение Challenge Pages приведёт к увеличению количества измерений в сетях с низкой плотностью трафика, и как это может повлиять на стабильность ранжирования?
  2. В каких условиях (например, при высокой загруженности или в отдельных регионах) может появиться смещение в trimean из-за несбалансированных распределений нагрузки между провайдерами, и как это может быть выявлено в данных?
  3. Какова оценка риска введения измерений в Challenge Pages при наличии уже существующих ограничений по производительности или задержкам в ответе на запросы?

DEV System Design

Retry Storms: How a 502 Fix Created a Thousand Duplicate Orders

Открыть оригинал ↗ Перевод заголовка: Повторные попытки: как исправление ошибки 502 привело к тысяче дублирующихся заказов

В распределённых системах временные сбои неизбежны, и механизмы повторных попыток, таймауты и переключатели цепей — стандартные элементы устойчивости. Однако при отсутствии идемпотентности — гарантии, что повторное выполнение запроса даст тот же результат, что и один раз — повторные попытки превращаются в разрушительный фактор. В реальном случае в e-commerce-системе ASP.NET Core при сбое в промежуточном сервисе (ошибка 502) автоматические повторные попытки привели к появлению тысячи дублирующихся заказов, так как каждый вызов воспринимался как новый запрос, а не повтор. Без идемпотентности каждый повторный запрос воспринимается как независимый, что приводит к умножению побочных эффектов, таких как дублирование записей в базе.

  1. Идемпотентность должна быть встроена на уровне HTTP-запросов, а не в бизнес-логике — это позволяет применять её глобально без изменения отдельных эндпоинтов.
  2. Ключ идемпотентности должен быть детерминированным (например, хэш из tenant_id и переданного ключа), чтобы один и тот же запрос всегда вёл к одному и тому же результату.
  3. Результаты запросов должны кэшироваться (например, в Redis) с ограниченным временем жизни, чтобы избежать накопления данных и обеспечить устойчивость при масштабировании.
  4. Повторные попытки должны быть блокированы при наличии ключа, чтобы не приводить к дублированию операций, особенно в POST/PUT-запросах.
  5. Механизм должен быть внедрён как middleware, чтобы не вмешиваться в логику приложения и оставаться незаметным для разработчиков.

Когда пригодится

Материал особенно полезен при работе с распределёнными системами, где используются повторные попытки (retry) — например, в API-интеграциях с внешними сервисами, где сбои в сети или промежуточных слоях могут привести к дублированию операций.

Вопросы для размышления

  1. Как изменится поведение механизма при наличии нескольких клиентов, которые одновременно отправляют один и тот же запрос с одинаковым Idempotency-Key, но разными tenant_id?
  2. В каких условиях идемпотентность может не сработать, даже при наличии кэширования, и как это может привести к неожиданным ошибкам в production?
  3. Какова сложность реализации идемпотентности в распределённой системе с несколькими инстансами, если кэш не поддерживает синхронизацию между ними?

Why Prompts Fail as AI Agent Guardrails (And How to Fix It)

Открыть оригинал ↗ Перевод заголовка: Почему промпты не срабатывают как защитные механизмы для ИИ-агентов (и как это исправить)

Зависимость от промптов для обеспечения безопасности ИИ-агентов — это уязвимость: такие промпты работают лишь на вероятностном уровне, а в производственной среде нужны жёсткие, предсказуемые правила и резервные точки вовлечения человека. Вместо того чтобы доверять модели для принятия решений о безопасности, система должна контролировать действия до их выполнения, с использованием жёстких правил, лимитов и механизмов вовлечения человека.

  1. Всегда разделяйте логику безопасности: контроль должен происходить вне LLM, до выполнения действия.
  2. Внедряйте жёсткие лимиты на транзакции — например, автоматические действия до $50, ручное одобрение при превышении.
  3. Ограничивайте доступ к инструментам: каждая функция должна быть изолирована по назначению, чтобы избежать нежелательных изменений.
  4. Реализуйте механизм отката состояния: при сбое в выполнении действия система должна возвращаться к предыдущему состоянию.
  5. Логируйте все входные данные, выбор инструмента и проверки политик для обеспечения прозрачности и аудита.

Когда пригодится

Материал полезен при проектировании систем, где безопасность и надёжность действий критичны — например, в финансовых сервисах, поддержке клиентов или системах, работающих с чувствительными данными.

Вопросы для размышления

  1. Какие критерии можно использовать для определения границ между "автоматическим" и "ручным" одобрением в системе с лимитами по транзакциям, чтобы избежать как перегрузки, так и пропуск опасных случаев?
  2. В каких сценариях откат состояния может быть неэффективным, и как это может повлиять на архитектуру безопасности при масштабировании системы?
  3. Какие допущения лежат в основе разделения инструментов по назначению, и как это может сбиться при динамическом расширении функционала агента?

Proof-Carrying Financial State: Making Economic Permissions Verifiable

Открыть оригинал ↗ Перевод заголовка: Доказательство-носитель финансового состояния: делаем экономические разрешения проверяемыми

Финансовые системы постоянно делают утверждения о состоянии — о доступности средств, завершённости платежей, возможности снятия или достаточности резервов. Однако большинство архитектур передают эти утверждения как простые поля состояния (например, withdrawable = true), не сохраняя контекст доказательств, которые их подтверждают. Это приводит к ситуации, когда нижестоящие сервисы получают только логические значения, не понимая, откуда и по каким критериям они были получены — например, от веб-хука, ручного вмешательства или устаревшего ответа.

Ключевые практические тезисы:

  1. Вместо простых булевых значений финансовые утверждения должны сопровождаться полным доказательством — ссылками на источники, политикой, версией состояния, сроком действия и идентификатором издателя.
  2. Утверждения должны быть строго ограниченными по смыслу: например, подтверждение подписи не означает, что средства полностью доступны.
  3. Каждое действие требует проверки не только наличия средств, но и соответствия установленному уровню доказательства (например, «авторитетный» или «проверенный»).
  4. Состояние может иметь разные уровни доказательства (от наблюдаемого до согласованного), и эти уровни должны быть иерархически организованы в соответствии с бизнес-семантикой, а не по упрощённой шкале.
  5. Доказательства должны быть связаны с конкретными версиями состояния и сроками действия, чтобы избежать использования устаревших данных.

Когда пригодится

Материал особенно полезен в системах, где экономические действия (например, снятие средств, выдача кредитов, трансферы) могут привести к необратимым потерям — в таких случаях отсутствие доказательства приводит к риску несанкционированных операций.

Вопросы для размышления

  1. Какой компромисс между производительностью и надёжностью возникает при использовании доказательств с разными уровнями доказательства (например, «наблюдаемый» vs «согласованный»), если в системе есть высокая нагрузка и критичность операций?
  2. При каких условиях доказательство «авторитетного» может быть неэффективным, если политика, используемая для его формирования, не учитывает динамические изменения в риске или ликвидности?
  3. Как можно адаптировать модель доказательств для работы в условиях, где доказательства должны быть проверены в реальном времени, но при этом не допускается задержка в принятии решений?

The ADR That Rots Isn't the Decision, It's the Assumption Under It

Открыть оригинал ↗ Перевод заголовка: Ошибка в АДР — не решение, а предположение, лежащее в его основе

Архитектурные решения, записанные в АДР, часто остаются неизменными, несмотря на то, что внешние условия изменились. Само по себе решение не "прокисло", но предпосылки, на которых оно основывалось, могут стать неверными — например, когда стоимость публичного IPv4 в AWS вдруг стала значимой. В таких случаях текст АДР остаётся точным, но его логика уже не соответствует реальности. Ключевая проблема — отсутствие механизма в процессе создания АДР для проверки истинности предпосылок. Вместо этого они скрыты в тексте контекста, что делает их непроверяемыми. Правильный подход — выносить предпосылки в отдельную таблицу с указанием условий их нарушения и уровня уверенности, чтобы они могли быть проверены в будущем. Важно проводить регулярные (квартальные) и срочные проверки, особенно при изменении цен, лицензий, персонала или инцидентах. Ревизия должна фокусироваться не на самой архитектуре, а на предпосылках, и при их нарушении — пересматривать решение, а не просто "обновлять" его. Важно сохранять неизменность АДР как исторического документа, но вводить отдельный журнал ревизий, где фиксируется, когда и почему предпосылка перестала быть верной.

Когда пригодится

Материал полезен для команд, работающих в динамичных средах с изменяющимися ценами, лицензиями или персоналом, где архитектура зависит от внешних факторов, и где важно своевременно выявлять несоответствия между предпосылками и реальностью.

Вопросы для размышления

  1. Какие критерии можно использовать для оценки "надёжности" предпосылки в АДР, если она не поддаётся количественной оценке, например, в случае неопределённой политики вендора?
  2. В каких условиях предпосылка может быть "слабо обоснованной" на уровне команды, но при этом оставаться в АДР без явного указания на низкую уверенность — и как это может повлиять на принятие решений в будущем?
  3. Как изменится эффективность ревизии АДР, если вводить автоматические уведомления о нарушении предпосылки на основе метрик (например, роста затрат), но при этом не обеспечить вовлечённость ключевых участников процесса?

How to Plan a Luxury Villa Interior in Jubilee Hills, Hyderabad: A Technical Guide to Design, Smart Lighting & Turnkey Execution

Открыть оригинал ↗ Перевод заголовка: Как планировать интерьер люкс-виллы в Jubilee Hills, Гиддабаде: техническое руководство по дизайну, смарт-освещению и полному исполнению

Планирование интерьера люкс-виллы — это не просто выбор дорогих материалов, а сложная интеграция систем: архитектуры, освещения, HVAC, звукоизоляции, электрики и умных технологий. В крупных домах, где участвуют десятки специалистов, ключевым является не декор, а структурированная система координации, которая предотвращает конфликты между системами.

  1. Первым шагом должно быть понимание пространственной структуры дома — от входа до ландшафта — с акцентом на движение и циркуляцию, а не на мебель.
  2. Потолок должен рассматриваться как инженерная конструкция: в нём должны быть учтены HVAC, освещение, датчики, камеры и другие элементы, чтобы избежать конфликтов в строительстве.
  3. Освещение должно быть многоуровневым (амбиентное, задачное, акцентное), чтобы создавать управляемую визуальную иерархию, а не просто освещать всё.
  4. Умные системы должны быть сгруппированы по сценариям повседневного использования (например, при приёме гостей или вечером), а не просто включаться по команде.
  5. Каждый элемент — от мебели до камня — влияет на другие системы: размеры дивана определяют расстояние до телевизора, размещение розеток и проходы.

Когда пригодится

Материал полезен при планировании крупных проектов в жилых домах, где требуется интеграция множества специализированных систем — от электрики до умных технологий — и где важно избежать ошибок на этапе строительства.

Вопросы для размышления

  1. Какие риски возникают при отсутствии координации между HVAC и освещением на потолке, если они проектируются независимо?
  2. В каких условиях смарт-системы могут стать неэффективными, несмотря на наличие сценариев, и как это может повлиять на пользовательский опыт?
  3. Какова сложность и критическая точка в координации мебели и электрических точек, если мебель заказывается до разработки схемы электропроводки?

DesignGurus

Beyond Authentication: 8 Security Topics for System Design Interviews

Открыть оригинал ↗ Перевод заголовка: Позаимствованные из аутентификации: 8 тем безопасности для собеседований по проектированию систем

Безопасность встраивается в системы двумя способами: после построения — при помощи пентеста, когда уязвимости исправляются по одному, и это лишь «после-последовательность», которая не меняет архитектуру; и во время проектирования — когда границы безопасности устанавливаются на уровне архитектуры, аутентификация и шифрование определяются с самого начала, а площадь уязвимостей сознательно ограничивается. Системы, построенные вторым способом, имеют устойчивую безопасность, так как архитектура определяет безопасность, а не отдельные фиксации. Вопросы на собеседовании по проектированию систем не касаются настроек фаервола или версий библиотек — они проверяют способность мыслить о поверхности атак, определять слои, где должны быть встроены механизмы защиты и описывать реализацию этих механизмов. Успешные кандидаты понимают безопасность как часть проектирования, а не как формальность.

  1. Какой компромисс между производительностью и безопасностью в TOTP и WebAuthn при использовании в мобильных приложениях?
  2. В каких условиях ABAC может привести к нестабильности в масштабируемой системе, и как это влияет на надёжность при изменении времени суток или географии?
  3. Почему в реальных системах часто игнорируется принцип наименьших привилегий, и как это проявляется в failure mode при утечке сервисного аккаунта?

Когда пригодится

Материал полезен при подготовке к собеседованию по проектированию систем, особенно когда речь идёт о построении архитектуры с учётом безопасности с самого начала, а не как последующий этап.

Вопросы для размышления

  1. Какой компромисс между производительностью и безопасностью в TOTP и WebAuthn при использовании в мобильных приложениях?
  2. В каких условиях ABAC может привести к нестабильности в масштабируемой системе, и как это влияет на надёжность при изменении времени суток или географии?
  3. Почему в реальных системах часто игнорируется принцип наименьших привилегий, и как это проявляется в failure mode при утечке сервисного аккаунта?

Habr Refactoring

[Перевод] N‑tier, Clean Architecture и Vertical Slice: практическое сравнение для.NET

Открыть оригинал ↗ Перевод заголовка: N‑tier, Clean Architecture и Vertical Slice: практическое сравнение для .NET

Эта статья анализирует три популярные архитектуры для .NET-проектов — N‑tier, Clean Architecture и Vertical Slice — с точки зрения их структуры, сильных и слабых сторон, а также сценариев применения. Автор подчёркивает, что выбор между ними не зависит от того, какая из них «новее», а определяется масштабом проекта, его сроком жизни и частотой изменений.

  1. N‑tier — простой и понятный подход, идеально подходит для небольших CRUD-приложений и быстрых запусков, но бизнес-логика тесно связана с инфраструктурой, что усложняет тестирование и модульность.
  2. Clean Architecture — предлагает строгую изоляцию бизнес-логики от инфраструктуры, обеспечивает высокую модульность и легко масштабируется на большие команды, но требует больше инициативы и времени на настройку, а также увеличивает количество файлов и проектов.
  3. Vertical Slice — фокусируется на фичах как на единицах кода, минимизируя перекрёстные зависимости и упрощая добавление новых функций, но может приводить к дублированию бизнес-правил и отсутствию общих стандартов, если команда не соблюдает дисциплину.

Когда пригодится

Материал особенно полезен при проектировании долгосрочных, сложных систем с активными изменениями требований и командами из нескольких человек, где важна поддержка, масштабируемость и чёткая структура кода.

Вопросы для размышления

  1. В каких случаях вертикальный срез может привести к дублированию бизнес-правил, и как это может быть предотвращено без ущерба для гибкости?
  2. Какова сложность и время настройки Clean Architecture при переходе с N‑tier, если проект уже имеет 10+ классов в контроллерах и сервисах?
  3. При каких условиях Vertical Slice становится более эффективным, чем Clean Architecture, несмотря на меньшее количество файлов?

InfoQ Architecture

Presentation: Managing Asynchronous APIs at Scale

Открыть оригинал ↗ Перевод заголовка: Управление асинхронными API на масштабе

Управление асинхронными API в масштабе требует четкого понимания трёх ключевых элементов — адреса, привязки и контракта — как в синхронных, так и в асинхронных системах. В статье описывается, как на практике в Just Eat Takeaway используются AsyncAPI, CloudEvents и регистры схем для стандартизации, обнаружения и автоматической инфраструктурной настройки. Важно, что документация становится источником правды, а не волонтёрская вики, и используется как основа для генерации кода, регистрации схем и развертывания инфраструктуры.

  1. Адрес, привязка и контракт — три фундаментальных элемента, которые должны быть описаны для каждого асинхронного интерфейса, аналогично синхронным API.
  2. AsyncAPI — стандарт, построенный на основе OpenAPI, который позволяет описывать каналы, схемы сообщений и привязки к протоколам (Kafka, SNS и др.), обеспечивая структурированную документацию.
  3. CloudEvents — стандартный формат метаданных, который обеспечивает единообразие в описании источника, типа события и времени, позволяя системам автоматически понимать контекст событий.
  4. Автоматизированные CI/CD-пайплайны с интеграцией в инфраструктуру (например, через CLI mex deploy) позволяют безопасно и повторно развертывать схемы, проверять совместимость и вести каталог событий (например, через Marmot).
  5. Государственная политика и контроль — схемы должны проходить проверку в пайплайне, а не только в вики, и развертывание должно быть ограничено только через официальные процессы, чтобы избежать утечек и неуправляемых изменений.

Когда пригодится

Материал полезен для команд, которые внедряют масштабные архитектуры на основе событий, где требуется стандартизация, прозрачность и управление потоками событий без ручного поиска или волонтёрских вики-страниц.

Вопросы для размышления

  1. Как можно организовать компромисс между автоматизацией развертывания схем и необходимостью вмешательства разработчиков при изменении контрактов, если в пайплайне нет механизмов для визуализации потоков событий?
  2. В каких условиях использование привязки к Kafka с Avro может привести к ухудшению производительности или увеличению сложности миграции, и как это может быть оценено при проектировании архитектуры?
  3. Какие риски связаны с тем, что только один инструмент (например, Marmot) обеспечивает каталог событий, а другие решения (например, xRegistry) остаются несовместимыми или неактуальными?

Coding / Algorithms

DEV Data Structures

Union-Find: The Matrix of Disjoint Sets

Открыть оригинал ↗ Перевод заголовка: Объединение множеств: матрица непересекающихся подмножеств

При решении задач о связности, например, подсчёте групп друзей в социальной сети, традиционный подход с вложенными циклами быстро выходит из строя при росте размера входных данных. Union-Find предлагает альтернативу — не хранить полную структуру связей, а динамически отслеживать компоненты через представителей (корни) и операции объединения. Алгоритм работает за счёт двух ключевых оптимизаций: объединение по размеру (rank) и сжатие пути (path compression), которые вместе обеспечивают амортизированную сложность α(n), практически равную O(1) для любых реальных входных данных.

  1. Операция find сжимает путь от узла к корню, делая будущие запросы почти мгновенными.
  2. При объединении всегда прикрепляется меньшее дерево к большему, что предотвращает образование высоких деревьев и поддерживает глубину в логарифмическом диапазоне.
  3. Количество компонент связности определяется количеством уникальных корней после всех операций union, что позволяет эффективно подсчитывать группы без полного перебора.
  4. Алгоритм идеально подходит для задач, где связи добавляются постепенно и требуется ответ на запросы о связности в реальном времени.
  5. В отличие от DFS, который требует полного обхода графа, Union-Find работает за линейное время относительно размера входа и не зависит от структуры графа.

Когда пригодится

Материал особенно полезен при решении задач, где нужно динамически отслеживать связность в графе — например, при подсчёте групп в сетях, обнаружении циклов, слиянии аккаунтов или проверке, принадлежит ли пара узлов одному компоненту после последовательного добавления рёбер.

Вопросы для размышления

  1. Как изменится поведение Union-Find при наличии большого количества операций union с низкой плотностью связей, и как это может повлиять на глубину деревьев без использования path compression?
  2. В каких случаях объединение по размеру может быть заменено на случайное (неорганизованное) объединение, и как это скажется на производительности в реальных условиях?
  3. Какова вероятность возникновения ошибок при подсчёте компонент, если не применять find к каждому узлу после всех операций union, и как это может быть обнаружено в тестовых случаях?

DEV LeetCode

22. Generate Parentheses

Открыть оригинал ↗ Перевод заголовка: 22. Генерация скобок

Данная задача требует сгенерировать все возможные корректные последовательности скобок из n пар. Алгоритм использует обход с возвратом (backtracking), где на каждом шаге добавляются скобки с соблюдением условий: открывающая скобка может быть добавлена, если ещё не использовано n открывающих скобок, а закрывающая — только если количество открытых скобок больше количества закрытых. Это гарантирует, что в любой префикс последовательности не будет больше закрывающих скобок, чем открывающих. Результат формируется при достижении длины 2n, когда количество открытых и закрытых скобок становится равным n.

  1. При добавлении '(' проверяется, не превысили ли мы лимит n открывающих скобок.
  2. При добавлении ')' проверяется, не превысили ли мы количество открытых скобок (т.е. не стало больше, чем открытых).
  3. Рекурсия завершается, когда длина строки достигает 2n, что означает полную корректную последовательность.
  4. Количество корректных комбинаций соответствует числу Каталана, что растёт экспоненциально с n.
  5. Временная сложность — O(n × C_n), где C_n — число Каталана, а пространственная — O(n) для стека рекурсии и O(C_n) для хранения результатов.

Когда пригодится

Материал полезен при реализации генерации комбинаторных объектов, таких как корректные скобочные последовательности, в задачах, где требуется построение всех валидных вариантов с ограничениями на баланс скобок.

Вопросы для размышления

  1. Как изменится поведение алгоритма при увеличении n до 10, и какие риски связаны с памятью и временными затратами?
  2. Можно ли адаптировать этот подход для генерации валидных последовательностей других типов скобок (например, квадратных, фигурных) с разными правилами валидности?
  3. Какова сложность по времени и памяти при использовании итеративного подхода вместо рекурсии?

How to solve: Leetcode#22 Generate parentheses

Открыть оригинал ↗ Перевод заголовка: Как решить: LeetCode#22 Генерация скобок

Проблема заключается в генерации всех корректных комбинаций из n пар скобок. При первом подходе используется полный перебор всех возможных последовательностей скобок, затем проверка каждой на корректность с помощью стека. Ключевой момент — это обнаружение, что если количество закрывающих скобок превышает количество открывающих на текущем этапе, то такая последовательность уже не может быть корректной, и такой путь следует немедленно отбросить. Это позволяет сократить размер поискового дерева и избежать генерации невалидных строк. Оптимизация достигается за счёт проверки условия closeUsed < openUsed при добавлении закрывающей скобки, что гарантирует, что в любой промежуточной строке количество закрывающих скобок не превышает количество открывающих. Важно понимать, что валидность не проверяется в конце, а устанавливается на ранних этапах — это и есть суть «принудительного отсечения» в алгоритме.

Когда пригодится

Материал полезен при обучении принципам поиска в глубину (backtracking), особенно когда нужно понять, как избежать генерации невалидных состояний на ранних этапах. Подходит для изучения алгоритмов, где важно выявлять «непоправимые» ошибки в промежуточных состояниях, а не только в конце.

Вопросы для размышления

  1. Как изменится поведение алгоритма, если ввести ограничение на максимальную длину строки (например, 10 символов), и что это означает для применимости условия closeUsed < openUsed?
  2. При каких условиях можно заменить проверку валидности на стек в начале рекурсии, а не в конце, и как это повлияет на сложность и правильность решения?
  3. Что произойдёт, если ввести дополнительное ограничение на количество вложенных скобок (например, не более 3 уровней), и как это скажется на условии closeUsed < openUsed как критерии отсечения?