InditexTech / InditexTech/scs-outbox

Automatically configure synchronous producers for outbox-enabled bindings

Open
#91 0 comments 0 reactions 0 assignees View on GitHub
kind/feature
Dominant language
Java
Stars
19
Forks
0
Avg merge
9h 31m
Merged PRs (30d)
17

Description

### Motivation

SCS-Outbox relies on synchronous producers to guarantee that a message has been successfully handed over to the broker before the corresponding outbox record is deleted.

The current setup requires applications to configure synchronous producers manually using binder-specific properties. This is error-prone because the application may start with an asynchronous producer configuration, potentially compromising the delivery guarantees provided by the outbox.

The library should assess whether it can automatically configure synchronous producers for the bindings managed by SCS-Outbox.

The solution must account for the fact that each Spring Cloud Stream binder exposes different properties to enable synchronous publishing. At a minimum, the supported binders and their configuration mappings should be explicitly defined.

### Acceptance criteria

- [ ] Assess whether SCS-Outbox can automatically enable synchronous producers for outbox-enabled bindings.
- [ ] Identify the supported binders and the binder-specific properties required to enable synchronous publishing.
- [ ] Define how the automatic configuration interacts with application-provided properties and configuration precedence.
- [ ] Define the behavior for unsupported binders or bindings whose synchronous mode cannot be configured automatically.
- [ ] Ensure that only bindings managed by SCS-Outbox are affected.
- [ ] Define whether applications can opt out of the automatic configuration and document the consequences.
- [ ] Add tests for the supported binders, multiple bindings, excluded bindings, and conflicting application configuration.
- [ ] Update the documentation to explain the behavior and the supported binders.

Contributor guide

Open the contributing guide

Research direction

Start by mapping how SCS-Outbox identifies managed bindings and how each supported Spring Cloud Stream binder enables synchronous publishing. Define configuration precedence, opt-out behavior, unsupported-binder handling, and the scope of automatic changes before adding coverage for supported binders, multiple and excluded bindings, and conflicts. Done means the behavior is tested and documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, spring, spring-boot
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.