How sartrebrasil/outbox-library works
This is a Java outbox-pattern library. The principal workflow writes a domain event into the application’s database transaction, then a polling relay publishes it to a configured broker with per-flow ordering, retries, and quarantine; operators can monitor and purge retained records. The README also documents Spring Boot integration and separate messaging-library and Kafka publisher modules. No source excerpts were available, so relationships below rely on the README; module internals and unshown calls are not inferred.
Main entry points: OutboxRelay.java Polling relay · JdbcOutboxWriter.java JDBC outbox writer · OutboxAutoConfiguration.java Spring integration · MessagePublisher.java Publisher interface
Components 17
Application integration
- Spring integration
outbox-spring-boot-starter/src/main/java/com/example/outbox/spring/OutboxAutoConfiguration.java - Spring writer
outbox-spring-boot-starter/src/main/java/com/example/outbox/spring/SpringOutboxWriter.java - Outbox properties
outbox-spring-boot-starter/src/main/java/com/example/outbox/spring/OutboxProperties.java - Health indicator
outbox-spring-boot-starter/src/main/java/com/example/outbox/spring/OutboxHealthIndicator.java
Outbox core
- JDBC outbox writer
outbox-core/src/main/java/com/example/outbox/core/JdbcOutboxWriter.java - Outbox message
outbox-core/src/main/java/com/example/outbox/core/OutboxMessage.java - Outbox schema
outbox-core/src/main/resources/db/outbox/postgresql/V202609211401__outbox_message.sql - Polling relay
outbox-core/src/main/java/com/example/outbox/core/OutboxRelay.java - Flow ordering
outbox-core/src/main/java/com/example/outbox/core/FluxoClaimer.java - Retry and quarantine
outbox-core/src/main/java/com/example/outbox/core/FailureSuppressor.java - Publisher interface
outbox-core/src/main/java/com/example/outbox/core/MessagePublisher.java
Broker publishers
- Messaging publisher
outbox-broker-messaging/src/main/java/com/example/outbox/broker/messaging/MessageSenderPublisher.java - Kafka publisher
outbox-broker-kafka/src/main/java/com/example/outbox/broker/kafka/KafkaMessagePublisher.java
Operations
- Purge job
outbox-core/src/main/java/com/example/outbox/core/PurgeJob.java - Metrics collector
outbox-core/src/main/java/com/example/outbox/core/MetricsCollector.java
Other components
- Domain application
- Message broker
Connections 19
- Domain application → Spring writer: enqueues via
README.md - Spring writer → JDBC outbox writer: writes through
README.md - JDBC outbox writer → Outbox message: encodes
README.md - JDBC outbox writer → Outbox schema: writes records
README.md - Domain application → JDBC outbox writer: enqueues in transaction
README.md - Polling relay → Outbox schema: polls records
README.md - Polling relay → Flow ordering: orders by flow
README.md - Polling relay → Retry and quarantine: retries and quarantines
README.md - Polling relay → Publisher interface: publishes through
README.md - Publisher interface → Messaging publisher: implemented by
README.md - Publisher interface → Kafka publisher: implemented by
README.md - Messaging publisher → Message broker: sends messages
README.md - Kafka publisher → Message broker: publishes messages
README.md - Purge job → Outbox schema: purges records
README.md - Polling relay → Metrics collector: reports metrics
README.md - Purge job → Metrics collector: reports metrics
README.md - Spring integration → Spring writer: configures
README.md - Spring integration → Outbox properties: uses configuration
README.md - Spring integration → Health indicator: provides health
README.md