О проекте¶
1С: Адаптер Kafka — встраиваемая подсистема для построения надёжных, масштабируемых и управляемых интеграционных потоков между 1С:Предприятие и брокером сообщений Apache Kafka на основе событийной архитектуры.
Подсистема берёт на себя всю техническую часть интеграции:
- постановку данных в очереди;
- обработку, выгрузку и загрузку сообщений;
- контроль ошибок и логирование.
Прикладное решение использует адаптер как готовый инфраструктурный слой — без собственной реализации работы с Kafka.
Варианты использования¶
Подсистема может применяться как:
- инфраструктурный слой интеграции — единый стандарт обмена внутри прикладного решения;
- транспорт для межсистемного обмена — надёжная доставка данных между системами;
- механизм событийной синхронизации — автоматическая публикация событий об изменениях данных.
Возможности¶
Регистрация и отправка данных (1С → Kafka)¶
- Автоматическая постановка объектов и наборов записей в очередь при записи.
- Ручная регистрация через пользовательский интерфейс или программный API.
- Формирование сообщений произвольными обработчиками или через 1С:Конвертация данных 3.1.
- Сериализация и валидация исходящих сообщений на основе XDTO.
- Параллельная отправка сообщений через фоновые задания 1С.
Получение и обработка данных (Kafka → 1С)¶
- Автоматическая загрузка сообщений из Kafka.
- Обработка произвольными обработчиками или через 1С:Конвертация данных 3.1.
- Десериализация и валидация входящих сообщений на основе XDTO.
- Параллельная обработка входящих сообщений через фоновые задания 1С.
Интеграция и API¶
- Высокоуровневый API, абстрагирующий работу с Kafka и внешним компонентом Simple Kafka Connector 1C.
- Прямой (синхронный) API для нестандартных сценариев без фоновых заданий.
Мониторинг и операционность¶
- Хранение истории обмена и диагностической информации.
- Алерты с уведомлениями в Telegram.
- Выгрузка журнала обмена в Elasticsearch / Logstash / Kibana.
Варианты внедрения¶
| Расширение конфигурации | Часть основной конфигурации | |
|---|---|---|
| Рекомендуется для | Типовых конфигураций с регулярными обновлениями | Глубоко кастомизированных решений |
| Плюсы | Минимальное вмешательство в основную конфигурацию; простое отключение и удаление | Полный контроль над точками встраивания; глубокая интеграция в прикладную логику |
| Минусы | Ограничения механизма расширений 1С | Сложность обновления зависит от режима поддержки |
Подробное описание — в Установка и подключение.
Благодарности¶
Компоненты и библиотеки:
- Simple Kafka Connector 1C — внешний компонент (DLL) для работы с Kafka из 1С, на базе librdkafka.
- Kafka1CExtension — базовый проект, послуживший основой для адаптера.
- JSONEditor — встроенный UI-редактор JSON.
Инструменты разработки:
- RDT1C — подсистема «Инструменты разработчика».
- tools_ui_1c — универсальные инструменты для управляемых форм 1С.
Тестирование:
- YAxUnit — фреймворк для юнит-тестирования на платформе 1С.
Инфраструктура:
- onec-docker — использовался как пример при создании Docker-образов для CI/CD.
Участие в разработке¶
Приветствуются предложения, сообщения об ошибках и pull request'ы в репозитории на GitHub.
При создании issue:
- для ошибки — укажите версию платформы 1С, описание проблемы и шаги воспроизведения;
- для предложения — опишите задачу и ожидаемое поведение;
- для вопроса — постарайтесь предоставить минимальный воспроизводимый пример.
При создании pull request'а:
- опишите суть изменения и мотивацию;
- убедитесь, что изменения не нарушают работу существующей функциональности;
- для значительных изменений — сначала откройте issue для обсуждения.