c1259c3105
RS1 (#29): планировщик истечения заявок — RequestExpiryService (@Scheduled + FOR UPDATE SKIP LOCKED, мультиинстанс-safe), refreshStatus вызывается и при создании заявки. RS7 (#35): единый топик pcp.request.status.v1 → geoportal (COMPLETED/EXPIRED в payload), замена orphan pcp.request.completed.v1; эмиссия из matching и expiry через тот же outbox; backoff/next_attempt_at/cap для outbox FAILED. RS3 (#31): DefaultErrorHandler + DeadLetterPublishingRecoverer (DLQ pcp.route.georeference-dlq.v1), bounded retry, контрактные ошибки в DLQ. RS6 (#34): проброс coverageRequiredPercent из API, разведение терминов покрытие/важность. Доки: бэклог, аудит сервиса заданий, карты взаимодействий. RS2 (#30) отложено до #28, RS5 (#33) — до роста требований к точности.
config-repo
Файлы в этом подпроекте предназначены для spring-cloud-config-server.
Ожидаемый сценарий:
- этот каталог хранится в GitLab-репозитории с конфигами
spring-cloud-config-serverчитает его черезCONFIG_GIT_URI- сервисы запрашивают конфиги по имени
spring.application.name
Для tle-monitoring-service используются файлы:
tle-monitoring-service.yaml
Пример запроса к Config Server:
GET /tle-monitoring-service/local
Архитектурные договоренности:
pcp-request-serviceявляется единственным owner request/grid-домена.pcp.services.requestдолжен использоваться как основной runtime endpoint для requests/cells/grid.pcp.services.earth-gridсохранен только как legacy alias и должен резолвиться вpcp.services.request.- lifecycle booked slots должен идти Kafka-first; legacy HTTP
/api/slots/booking/processне считается рабочим основным путем. pcp.services.adminуказывает наpcp-srpring-boot-admin-server; сервисы PCP должны регистрироваться в нем через Spring Boot Admin client.