Package io.namastack.outbox
Class OutboxProcessingScheduler
-
- All Implemented Interfaces:
public final class OutboxProcessingSchedulerScheduler for processing outbox records.
This scheduler coordinates with the partition coordinator to only process records assigned to the current instance, enabling horizontal scaling across multiple application instances. It uses a configurable TaskExecutor to enable parallel processing of multiple aggregateIds, while still guaranteeing strict ordering per aggregateId.
- Since:
0.2.0
Roland Beisel
-
-
Constructor Summary
Constructors Constructor Description OutboxProcessingScheduler(OutboxRecordRepository recordRepository, OutboxRecordProcessor recordProcessor, PartitionCoordinator partitionCoordinator, OutboxInstanceRegistry instanceRegistry, TaskExecutor taskExecutor, OutboxRetryPolicy retryPolicy, OutboxProperties properties, Clock clock)
-
Method Summary
-
-
Constructor Detail
-
OutboxProcessingScheduler
OutboxProcessingScheduler(OutboxRecordRepository recordRepository, OutboxRecordProcessor recordProcessor, PartitionCoordinator partitionCoordinator, OutboxInstanceRegistry instanceRegistry, TaskExecutor taskExecutor, OutboxRetryPolicy retryPolicy, OutboxProperties properties, Clock clock)
- Parameters:
recordRepository- Repository for accessing outbox recordsrecordProcessor- Processor for handling individual recordspartitionCoordinator- Coordinator for partition assignmentsinstanceRegistry- Registry for instance managementtaskExecutor- TaskExecutor for parallel processing of aggregateIdsretryPolicy- Policy for determining retry behaviorproperties- Configuration propertiesclock- Clock for time-based operations
-
-
-
-