Fortech
  • Аутстаффинг
  • Аутсорс
  • Веб-разработка
  • Мобильная разработка
  • ИИ-решения
  • UI/UX-дизайн
  • Техническая поддержка
КейсыКонтактыО насБлогКарьера
Связаться
  • Аутстаффинг
  • Аутсорс
  • Веб-разработка
  • Мобильная разработка
  • ИИ-решения
  • UI/UX-дизайн
  • Техническая поддержка
КейсыКонтактыО насБлогКарьера
Связаться
Fortech
Юридический адрес
344011, Ростовская область, г. Ростов-на-Дону, Лермонтовская ул, д. 22, офис 6, 7, 8
ИНН / КПП
6154162274 / 616401001
ОГРН
1226100005922
ОКВЭД
62.01 Разработка компьютерного программного обеспечения
Код вида деятельности в области IT
1.01, 1.04, 1.05, 1.06

Услуги

  • Аутстаф
  • Аутсорс
  • Веб-разработка
  • Мобильная разработка
  • ИИ-решения
  • UI/UX-дизайн
  • Техническая поддержка

Компания

  • Кейсы
  • Контакты
  • О нас
  • Блог

Соцсети

  • ВКонтакте
  • MAX
  • Telegram
  • Workspace
  • YouTube

Аккредитованная IT-компания
Запись №25727 от 13.04.2022

Минцифры России

Позвать нас в тендер

  • bidzaar
  • B2B-Center
Контент © fortech.dev • 2026Политика конфиденциальностиПолитика обработки персональных данных
  1. Главная/
  2. Кейсы/
  3. Единый сервис подписания документов через Контур.Диадок для девелопера

Единый сервис подписания документов через Контур.Диадок для девелопера

Как мы с нуля сделали микросервисы, которые принимают документы из внутренних систем, отправляют их на подпись в Диадок, следят за статусами и хранят архив

О проекте

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

Сервис сделали с нуля. Бэкенд-разработчики Фортех работали в команде заказчика вместе с аналитиками, тестировщиком и руководителем проекта. Проект шёл с января 2024 по декабрь 2025 года, почти два года, и завершился успешно. Поддержку сервиса дальше ведут внутренние сотрудники заказчика.

Задача

  • принимать документы от смежных систем и проверять их;
  • сохранять документы в S3-хранилище и передавать их в Контур.Диадок;
  • опрашивать статусы документов в Диадоке и загружать обновления;
  • возвращать обновления и подписанные документы в смежные системы;
  • получать данные об организациях из MDM;
  • разграничить доступ по ролям.

Реализация

Ограничения задачи

Сервис работает между несколькими внутренними системами и внешним Диадоком, поэтому у каждого способа связи свой протокол: HTTP, gRPC и Kafka.

Статусы документов нужно узнавать у Диадока самостоятельно, опросом, и держать их актуальными во всех смежных системах.

Инфраструктура заказчика в SberCloud и Kubernetes, хранилище файлов S3-совместимое на MinIO.

Решение

Архитектура. Сервис разбили на микросервисы. Компоненты построены на принципе инверсии зависимостей (IoC), поэтому их можно переиспользовать в соседних сервисах заказчика.

Три микросервиса. HTTP-микросервис работает с системами документооборота, которые подключаются к сервису. Worker-микросервис следит за актуальностью справочников и опрашивает события документооборота. gRPC-микросервис отвечает за системы, которые общаются по gRPC.

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

Node.jsNestJSTypeScriptPostgreSQL

События. Через Kafka сервис сообщает смежным системам об изменениях в документообороте. Данные об организациях приходят из MDM по REST и через Kafka.

Очереди. Для фоновых задач внедрили очереди на Redis Bull.

Доступ. Ролевую модель сделали на Keycloak: права проверяются по scope-permissions в RPT-токенах.

Порядок в хранилище. Сервис сам удаляет неиспользуемые и устаревшие данные и файлы из базы и S3-хранилища.

Наблюдаемость и тесты. Написали собственные механизмы сбора метрик и unit-тесты на ключевую бизнес-логику. Для фронтенда сделали отдельные эндпоинты.

Результат

У девелопера появился единый сервис подписания документов. Внутренние системы больше не подключаются к Диадоку каждая отдельно: они отправляют документы в один сервис и получают от него статусы и подписанные файлы.

Сервис принимает документы по HTTP и gRPC, сообщает об изменениях через Kafka, хранит архив в S3 и сам чистит устаревшие файлы. Доступ разграничен по ролям через Keycloak.

Проект занял почти два года и завершился успешно, сервис передан на поддержку внутренней команде заказчика.

Частые вопросы

Зачем отдельный сервис подписания, если у компании уже есть Диадок?
Когда документы создаются в нескольких системах, каждой пришлось бы отдельно подключаться к Диадоку и следить за статусами. Один сервис забирает это на себя: системы отправляют документ и получают результат, не зная, как устроен обмен с Диадоком.

Как держать статусы подписания актуальными во всех системах?
Опрашивать статусы в отдельном фоновом сервисе и рассылать изменения через брокер сообщений. Здесь этим занимаются worker-микросервис и Kafka.

Можно ли переиспользовать такие микросервисы в других проектах компании?
Да. Компоненты здесь построены на инверсии зависимостей, и их можно подключать в соседние сервисы заказчика.

Сколько разработчиков нужно на такой проект?
Здесь работали два бэкенд-разработчика вместе с аналитиками, тестировщиком и руководителем проекта. Состав подстраивали под объём работы: второго бэкенд-разработчика подключали, когда он был нужен.

Нужен похожий проект?

Расскажите о задаче — оценим сроки и стоимость за 2–3 рабочих дня.

Написать в Telegram →

Связанные услуги

  • Backend-разработка
  • Разработка веб-сервисов

Другие кейсы

  • Обложка кейса Фортех: CRM нефтегазовой компании

    Интеграция ELMA365 с 1С и системой документооборота нефтегазовой компании

    Как мы связали CRM с корпоративными системами через TypeScript-скрипты, которые аналитики собирают в бизнес-процессы без программирования

  • Обложка кейса Фортех: Автопоиск и бронирование заказов

    Высоконагруженная платформа автоматического поиска и бронирования заказов для B2B

    Как мы делали поисковый сервис с обновлением до 10 мс, координацию серверов, автобукинг, шардирование MongoDB и подписки на Stripe

  • Обложка кейса Фортех: Учёт ремонта скважин

    Система учёта и контроля ремонта скважин для нефтяной компании

    Как мы перевели авторизацию на Keycloak, подготовили продукт к поставке без внешних интеграций и добавили новые виды ремонтов и отчётов

  • Обложка кейса Фортех: Обменники и рекламная платформа

    Фронтенд для сервиса мониторинга обменников и рекламной платформы

    Как мы верстали адаптивный сервис сравнения обменников на Next.js, а для рекламной платформы сделали поиск кампаний, вход через четыре канала и админку

Готовы начать?

Опишите задачу — пришлём оценку проекта за 2–3 рабочих дня или резюме специалистов за 1–2 рабочих дня.

  • partners@fortech.dev
  • +7 (989) 617-13-94
  • Телеграм: @fortech_sales