Package com.aim2be.platform.outbox
package com.aim2be.platform.outbox
-
ClassDescriptionSpring Boot auto-configuration for the outbox-publisher module.Registers
com.aim2be.platform.outboxwith Spring Boot'sAutoConfigurationPackagesadditively so BOTH Hibernate's entity scan (driven by@EntityScanresolution inJpaBaseConfiguration.getPackagesToScan()) AND Spring Boot'sJpaRepositoriesAutoConfiguration(which uses the sameAutoConfigurationPackageslist to determine repository scan roots) seeOutboxRecord+OutboxRecordRepositoryWITHOUT replacing the consumer's own@SpringBootApplication-derived packages.Storage SPI for the transactional outbox — the abstraction seam between the relay/poller orchestration (OutboxPublisher+OutboxPollerWorker) and the underlying persistence engine (Wave A.2 Phase 0a, design doc.planning/32-wave-a2-redis-outbox-design.mdrefinement #11).Micrometer binder for the outbox metrics enumerated in.planning/26-stage-b-outbox-parity.md§OQ-5:im2be_outbox_pending_total— gauge of PENDING row count (polled fromOutboxRecordRepository.countByStatus(com.aim2be.platform.outbox.OutboxRecord.Status)).im2be_outbox_publish_latency_seconds— timer recorded by the publisher on each successful publish (hot or cold).im2be_outbox_backlog_age_seconds— gauge ofnow() - oldest_pending.created_at; published when at least one PENDING row exists, else reports zero.im2be_outbox_publish_failure_total— counter incremented on every failed hot or cold publish attempt.Cold-path poller that owns thePENDING → SENTtransition for outbox rows the hot AFTER_COMMIT relay did not finish (broker outage, process crash, circuit-breaker OPEN window, etc.).Type-safe configuration for the outbox-publisher module.Storage-backend selector for theOutboxBackendSPI (Wave A.2 Phase 0a / design doc refinement #11).Resilience4j circuit-breaker tuning for the hot AFTER_COMMIT path.Cold-path poller configuration.ShedLock context-wide configuration.Helper component that executes outbox row status updates in their OWN transaction (Propagation.REQUIRES_NEW).Transactional outbox publisher implementing ADR-0014 D-1 + D-9 (dual-mode relay).Transactional outbox row, per ADR-0014 D-4.Compound primary key forOutboxRecord.Per-row lifecycle.Spring Data repository forOutboxRecord.Default Postgres-backedOutboxBackend— the verbatim PG storage logic extracted fromOutboxPublisher+OutboxPollerWorkerduring Wave A.2 Phase 0a (design doc.planning/32-wave-a2-redis-outbox-design.mdrefinement #11) with ZERO behaviour change.UUIDv7 generator per draft-ietf-uuidrev-rfc4122bis (RFC9562 §5.7).