Package-level declarations

Types

Link copied to clipboard
@ConfigurationProperties(prefix = "spring.kafka")
data class KafkaInfraProperties(val bootstrapServers: String = "localhost:29092", val schemaRegistryUrl: String = "http://localhost:8081", val consumer: KafkaInfraProperties.Consumer = Consumer())

Type-safe configuration for the shared Kafka infrastructure.

Link copied to clipboard
@Service
class KafkaOutboxProcessor(outboxRepository: OutboxRepositoryPort, outboxMessageFactory: OutboxMessageFactory, kafkaTemplate: KafkaTemplate<String, ByteArray>, properties: KafkaOutboxProperties, dispatchTx: OutboxDispatchTx)

Reusable Kafka outbox processor implementing the transactional outbox pattern (Richardson, Microservices Patterns, ch. 3).

Link copied to clipboard
@ConfigurationProperties(prefix = "veds.outbox")
data class KafkaOutboxProperties(val pollInterval: Duration = Duration.ofSeconds(DEFAULT_POLL_INTERVAL_SECONDS), val batchSize: Int = DEFAULT_BATCH_SIZE, val maxRetries: Int = DEFAULT_MAX_RETRIES, val retryCooldown: Duration = Duration.ofMinutes(DEFAULT_RETRY_COOLDOWN_MINUTES), val stuckThreshold: Duration = Duration.ofMinutes(DEFAULT_STUCK_THRESHOLD_MINUTES))

Externalized configuration for the Kafka transactional outbox.

Link copied to clipboard
@Component
class OutboxDispatchTx(outboxRepository: OutboxRepositoryPort)

Transactional helpers for KafkaOutboxProcessor.

Link copied to clipboard
@Service
class ProcessedEventGuard(repository: ProcessedEventRepositoryPort, factory: ProcessedEventFactory, transactionManager: PlatformTransactionManager)

Guard implementing the idempotent receiver pattern for Kafka consumers. Wraps the persistence-agnostic ProcessedEventRepositoryPort / ProcessedEventFactory ports.