← Журнал
Architecture

Как я делаю архитектуру проектов на базе nodes, и почему это эффективно?

Есть момент в проектировании AI-систем, когда документ перестаёт работать. Схема в PDF, тридцать страниц текста, разделы с подразделами — всё это выглядит солидно, пока не доходит до реальной работы..

Юрий Елисеев
4
Как я делаю архитектуру проектов на базе nodes, и почему это эффективно?
Содержание статьи8
Есть момент в проектировании AI-систем, когда документ перестаёт работать. Схема в PDF, тридцать страниц текста, разделы с подразделами — всё это выглядит солидно, пока не доходит до реальной работы. Разработчик открывает документ, читает двадцать минут, закрывает и идёт спрашивать. Потому что текст не даёт того, что даёт картинка: целостности. Разберём, почему я строю архитектуру проектов на базе nodes и что это меняет в процессе — от согласования до реализации.

Что такое nodes и почему они работают

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

Классическое проектирование описывает систему линейно. Раздел первый, раздел второй, приложение А. Читателю приходится держать в голове всё сразу, потому что связи между разделами не видны. Граф устроен иначе: связи — это его суть. Ты смотришь на узел и сразу видишь, откуда к нему приходят данные, куда уходят, что зависит от него, что он блокирует.

Такая подача меняет оптику. Ты перестаёшь читать проект и начинаешь его видеть. Это и есть та самая магия визуализации — она даёт уму и глазам то, чего не даёт текст: структуру, которую можно охватить одним взглядом.

Почему текстовая документация пробуксовывает

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

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

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

Третья — согласование. Когда проект согласовывают по тексту, участники читают разные разделы и уходят с разными картинами. Потом выясняется, что заказчик понял одно, архитектор имел в виду другое, разработчик услышал третье. Граф снимает эту проблему: все смотрят на одну карту и обсуждают одни и те же узлы.

Как это выглядит на практике

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

Второй слой — связи. Что с чем общается, в каком направлении, с какой частотой, по какому протоколу. Связи тоже имеют свойства: тип, критичность, сценарий отказа. Когда все связи нарисованы, видно не только структуру, но и узкие места. Например, один узел, через который идёт всё — очевидная точка риска, которую в текстовом документе легко пропустить.

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

Четвёртый слой — свойства. Для каждого узла фиксируется: владелец, статус, зависимости, требования, риски. Это уже не картинка, а рабочий инструмент. По графу можно пройти и увидеть, какие узлы готовы, какие в работе, какие требуют решения.

Что это даёт при согласовании

Согласование проекта на графе проходит предсказуемо. Участники смотрят на одну картину, и разговор идёт предметно: «вот этот узел — что он делает», «вот эта связь — как она работает при сбое», «вот этого узла нет — его надо добавить».

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

Есть и вторая сторона. Заказчики, которые далеки от технической подачи, иногда смущаются, когда им показывают граф вместо привычного документа. Это нормально: восприятие схем требует небольшой привычки. Но после первого разбора обычно приходит понимание, что так видно гораздо больше, чем в тексте.

Что это даёт при реализации

Здесь начинается самое интересное. Те, кто будет воплощать проект, получают мощный инструмент. Разработчику не нужно лезть в документацию, чтобы понять глубину, структуру, сложность и ресурсность задачи. Всё это видно на графе. Он открывает карту и сразу понимает, где его зона, с чем она связана, что от него зависит.

Это меняет скорость входа в проект. Обычно новый человек тратит дни на изучение документации, задаёт десятки вопросов и всё равно упускает часть контекста. С графом вход занимает часы: структура понятна сразу, детали можно уточнять по ходу.

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

Колонка автора

Кульминация: почему это эффективно

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

Графы не отменяют документацию. Текстовые описания остаются нужны для деталей, юридических аспектов, инструкций. Но как основной инструмент проектирования граф даёт то, чего текст дать не может: целостность, наглядность, скорость обсуждения и ясность изменений.

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

Глоссарий терминов

  • Node (узел) — элемент графа, описывающий конкретный компонент системы: сервис, модель, хранилище, задачу, роль.
  • Граф — структура из узлов и связей между ними, описывающая систему как сеть.
  • Связь (edge) — отношение между узлами: направление передачи данных, зависимость, вызов, поток событий.
  • Архитектура — структура системы: компоненты, их связи, распределение ответственности и границы.
  • Домен — группа узлов, объединённых по функциональному признаку: данные, модели, интеграции, интерфейс, инфраструктура.
  • Визуализация данных — представление структуры и связей в наглядной графической форме.
  • Проектирование — процесс создания описания системы до её реализации.
  • Согласование проекта — этап обсуждения и утверждения архитектуры всеми участниками.
  • Доработка — изменение проекта, вызванное новыми требованиями или обнаруженными пробелами.
  • Сценарий отказа — заранее описанное поведение системы при сбое компонента.
  • Узкое место — компонент, через который проходит критичный поток данных, создающий риск.
  • Зависимость — отношение, при котором работа одного узла определяется состоянием другого.
  • Точка риска — место в архитектуре, где высока вероятность сбоя или деградации.
  • Интеграция — связь системы с внешним сервисом или другой системой.
  • API — программный интерфейс для взаимодействия между системами.
  • Векторная база — хранилище эмбеддингов для семантического поиска.
  • LLM (Large Language Model) — большая языковая модель, основа генеративных AI-систем.
  • RAG (Retrieval-Augmented Generation) — подход, при котором модель отвечает, опираясь на найденные внешние документы.
  • Промпт — инструкция для модели, определяющая, как она должна отвечать.
  • Pipeline — автоматизированная цепочка обработки данных.
  • Ресурсность — объём ресурсов, необходимых для реализации и эксплуатации компонента.
  • Handoff — передача архитектуры и документации в команду реализации.
  • Масштабирование — способность системы справляться с ростом нагрузки.
  • Системное мышление — способность видеть систему целиком и понимать связи между её частями.

С уважением,

Юрий Елисеев

Архитектор AI-систем · Full-Stack Product Engineer

Сотрудничество

Нужен проект любой сложности?

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

Написать заявку