Минас Саркисянwebkoth.com

Внутренняя система · Пилот

Витрины поверх озера данных

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

Болело

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

Стало

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

Что это даёт бизнесу

  • Дашборд отвечает, даже когда источник недоступен, и всегда показывает, на какой момент данные.
  • Товар без себестоимости не выглядит товаром с отличной маржой: выручка без себестоимости доезжает до экрана отдельным показателем.
  • Расходы, которые не ложатся на позицию, показаны отдельно, а не размазаны по товарам выдуманным правилом.
  • Запрос за период глубже витрины получает честный отказ, а не молча обрезанный ряд.
  • Приложение не строит свой сбор данных: оно берёт готовое озеро и держит поверх него короткую витрину под скорость экрана.

От источника к результату

  1. Озеро данных
  2. Корпоративное хранилище
  3. Фоновые задачи по расписанию
  4. Свои витрины
  5. Дашборды с датой актуальности

В источники ходит только фоновая задача - она стоит внутри защищённого контура. Интерфейс и API читают исключительно свою базу, поэтому их размещение от сети источника не зависит.

Как устроено

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

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

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

Очередь задач живёт в той же базе, что и данные приложения: постановка задачи и бизнес-изменение попадают в одну транзакцию, поэтому «записали, а задачу потеряли» невозможно. Отдельное хранилище под очередь не понадобилось.

Кто ведёт систему сейчас

Инженер. Оба источника подключены только на чтение, писать приложение может лишь в свою базу.

Другие кейсы этого шага

Внутренняя система · В проде

Платформа данных

Цифра сверена с первоисточником до единицы товара

Болело
Данные проходили четыре слоя обработки, и никто не сверял результат с тем, что показывает сама площадка. Решение о цене принималось по цифре, которую не с чем сравнить.
Стало
Заказы, отмены и остатки сверены с площадкой до единицы товара, деньги - до копейки, и проверку можно повторить в любой день одной командой.
Доверие
Витрины
продажи, остатки, присутствие, P&L, сверка

Та же система даёт эффект ещё по 2 шагам

Смотреть кейс

Внутренняя система · В проде

Агенты управления рекламой

Ставки меняются по данным: ДРР в плане ≤ 10 %

Болело
Ставки крутили по вчерашнему отчёту и по ощущению. Но «вчера» показывает не то, что было: обвал рынка легко принять за свою ошибку и разогнать спираль правками.
Стало
Решение собирается по порядку: режим рынка, здоровье товара, справедливый целевой ДРР для этой позиции и только потом сама ставка. Показатели - по зрелому окну, план по ДРР не выше 10 %.
ДРР
Порядок решения
режим рынка → здоровье товара → целевой ДРР → ставка
Окно показателей

Та же система даёт эффект ещё на одном шаге

Смотреть кейс

Свой продукт · В проде

Магазины маркетплейсов в Claude

Ответ о магазине - словами, без дашборда

Болело
Чтобы понять, что происходит в магазине, продавец обходит кабинеты трёх площадок и сводит отчёты в таблице. Дашборд отвечает только на заранее заложенные вопросы.
Стало
Продавец спрашивает обычными словами - «что заканчивается на складах», «окупается ли реклама», «сколько придёт на счёт», - и Claude идёт в API площадки его ключом.
Охват
Ключи площадок
Табличный отчёт
скачивается сам и читается строками

на замере в августе 2026 через каталог API доступны 945 операций из 962

Та же система даёт эффект ещё на одном шаге

Смотреть кейс

Открытый код · В проде

База знаний маркетплейсов для агентов

Агент отвечает по правилам площадок, а не по памяти

Болело
Когда ИИ-агент проектирует логику под правила площадки, он опирается на память. Тарифы и лимиты меняются, память - нет, и ошибка всплывает не на ревью, а в деньгах.
Стало
База знаний трёх площадок лежит рядом с проектом обычными markdown-файлами: по файлу на метод API и статьи справки. Агент читает первоисточник со ссылкой и датой, а не пересказ.
База
Сборка
Обновление
одна команда, git-diff как отчёт об изменениях
Смотреть кейс
Тип
Внутренняя система
Статус
Пилот
Ритм
витрина обновляется по расписанию
Ведёт
инженер
Заменило
расчёт по сырому отчёту площадки
Python 3.14uvFastAPISQLAlchemy 2.0AlembicPostgreSQL 18procrastinatepython-tdsReact 19TanStack QueryPlaywright