Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

t-bonk
Copy link
Contributor

@t-bonk t-bonk commented Jun 27, 2025

No description provided.

@t-bonk t-bonk requested a review from BraunMatthias June 27, 2025 12:49
@t-bonk t-bonk requested a review from smahati as a code owner June 27, 2025 12:49
}

private Optional<Predicate> createOutboxFilters(CdsRuntime runtime) {
List<OutboxService> outboxServices = runtime.getServiceCatalog().getServices(OutboxService.class)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what about iterating the persistent outboxes from application configuration (outboxConfigs)+ the known defaults? INMEMORY_NAME would not be required.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@BraunMatthias If an outbox has the default configuration, iterating over the configurations doesn't return the specific config for an outbox. I observed this while testing the code; in this case no outbox can be found and hence no dead entries are read at all.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might be only true for the two default outboxes which needed to be explicitly named here. But what happens in 398 for those?

Predicate where = null;
for(OutboxService service : outboxServices) {
OutboxServiceConfig config = outboxConfigs.getService(service.getName());
Predicate targetPredicate = CQL.get(Messages.TARGET).eq(service.getName()).and(CQL.get(Messages.ATTEMPTS).ge(config.getMaxAttempts()));
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do we need to filter by individual outbox and then OR the condition meeting all outboxes?

Copy link
Contributor Author

@t-bonk t-bonk Jul 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@BraunMatthias Every outbox can have its own configuration for maxAttempts. To read only the dead entries per outbox, this filter is required.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same reason - I just overlooked this aspect

@t-bonk t-bonk requested a review from BraunMatthias July 18, 2025 08:40
}

private Optional<Predicate> createOutboxFilters(CdsRuntime runtime) {
List<OutboxService> outboxServices = runtime.getServiceCatalog().getServices(OutboxService.class)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might be only true for the two default outboxes which needed to be explicitly named here. But what happens in 398 for those?

Co-authored-by: BraunMatthias <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants