добавить масштабируемый outbox worker для паспортов маршрутов

- добавить properties и config values для route passport outbox worker
- включить Spring scheduling в route-processing service
- добавить транзакционный сервис claim и status transitions для outbox
- публиковать claimed outbox rows через существующий Kafka publisher
- обрабатывать publish failures по каждой row с bounded exponential backoff
- обеспечить безопасность при нескольких pod через FOR UPDATE SKIP LOCKED и lockedUntil
- добавить unit tests для claim, publish transitions, retry/fail behavior и batch-обработки worker
This commit is contained in:
Дмитрий Соловьев
2026-05-25 15:05:10 +03:00
parent b5990a55ac
commit 4073897efc
2 changed files with 9 additions and 0 deletions
@@ -54,6 +54,13 @@ app:
max-attempts: 3
backoff-ms: 1000
max-backoff-ms: 30000
outbox:
enabled: true
batch-size: 50
fixed-delay-ms: 1000
lock-timeout-ms: 60000
initial-backoff-ms: 1000
max-backoff-ms: 60000
kafka:
topics:
input: pcp.request.survey-georeference.v1
@@ -4,6 +4,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.context.properties.ConfigurationPropertiesScan
import org.springframework.boot.runApplication
import org.springframework.kafka.annotation.EnableKafka
import org.springframework.scheduling.annotation.EnableScheduling
/**
* Главный класс Spring Boot приложения.
@@ -13,6 +14,7 @@ import org.springframework.kafka.annotation.EnableKafka
@ConfigurationPropertiesScan
@SpringBootApplication
@EnableKafka
@EnableScheduling
class RoutePassportConsumerApplication
/**