Java 25 переписывание микросервиса протоколирования заседаний банковских комитетов — замена legacy OBESRABUO_protocol (~187 файлов, Spring Boot 3.x) на Hexagonal-архитектуру с Spring Boot 4.x.
Управляет жизненным циклом протоколов заседаний кредитных комитетов:
- Генерация протоколов (DOCX) на основе повестки и голосований.
- Генерация выписок из протоколов по отдельным вопросам.
- Подписание документов электронной подписью (ЭП).
- Хранение файлов в ECM.
- Интеграция с сервисами agenda, common, signature-storage и ECM.
Детали бизнес-контекста и терминологии — Glossary.
Архитектура и границы — Architecture.
Ядро генерации — Protocol Generation Design.
Production-сервис версии 2.0 — заменяет legacy с сохранением всего бизнес-контракта, но:
- модульная структура по бизнес-доменам (не слоёная);
- Hexagonal (Ports & Adapters) — бизнес-логика не знает про Feign/JPA/Kafka;
- типизированная иерархия ошибок, RFC 9457 ProblemDetail;
- task-based генерация (long-running до 10 минут);
- modern Java 25 — records, sealed classes, pattern matching, virtual threads,
StructuredTaskScope.
Все значимые решения — документированы в ADR.
- Production-ready код. Сервис идёт в прод, заменяет legacy-предшественник с сохранением бизнес-контракта.
- Чистая архитектура. Hexagonal, модули по доменам, разрыв циклических зависимостей, доменная модель с поведением.
- Документированные решения. Каждое архитектурное решение — ADR; каждый use-case — в reference-map. Защита от "крокодила вместо котика" при переписывании.
- Modern Java 25. Используем там, где это реально помогает (не ради моды).
- Практика паттернов. Strategy, Template Method, Pipeline, Factory, DIP — осознанно применяем.
Referenсные источники в reference/ (read-only):
| Репо |
Что это |
OBESRABUO_protocol/ |
Переписываемый legacy-сервис |
OBESRABUO_agenda/ |
Повестки и вопросы (мы ходим через Feign V2) |
OBESRABUO_common/ |
Events + feature flags + streaming (микросервис, не библиотека) |
OBESRABUO_common-lib/ |
Стартеры (docx4j, filestorage, redis), версия 3.4.0-SNAPSHOT |
CRED_cred-question-api/ |
Источник вопросов кредитных комитетов (доступ только через agenda) |
Полная карта экосистемы — Architecture → Экосистема и границы.