InditexTech / InditexTech/scs-outbox
Automatically configure synchronous producers for outbox-enabled bindings
- 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
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