Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DATAGO-67282: NACK Support for Consumer bindings #270

Merged
merged 9 commits into from
Mar 15, 2024

Conversation

mayur-solace
Copy link
Contributor

  • DATAGO-67282: Added NACK Support feature, removed ITs related to rebind
  • DATAGO-67282: Removed stale tests related to rebind
  • DATAGO-67282: Added IT, Removed Commented Code
  • DATAGO-67282: Added javadocs
  • DATAGO-67282: Updated the version in pom. Updated the spring-cloud-dependencies version and sol-jcsmp version
  • DATAGO-67282: Remove unused consumer binding properties flowPreRebindWaitTimeout, flowRebindBackOffInitialInterval, flowRebindBackOffMaxInterval, flowRebindBackOffMultiplier

* DATAGO-67282: Added NACK Support feature, removed ITs related to rebind
* DATAGO-67282: Removed stale tests related to rebind
* DATAGO-67282: Added IT, Removed Commented Code
* DATAGO-67282: Added javadocs
* DATAGO-67282: Updated the version in pom. Updated the spring-cloud-dependencies version and sol-jcsmp version
* DATAGO-67282: Remove unused consumer binding properties flowPreRebindWaitTimeout, flowRebindBackOffInitialInterval, flowRebindBackOffMaxInterval, flowRebindBackOffMultiplier
@Nephery Nephery self-requested a review March 11, 2024 17:30
pom.xml Outdated Show resolved Hide resolved

Refer to <<Failed Consumer Message Error Handling>> for more info.

| REQUEUE
| If the consumer is in a defined consumer group, rebind the consumer flow. Otherwise, a `SolaceAcknowledgmentException` will be thrown.
| For both, the consumer in a defined consumer group or in an anonymous group, signal the Solace broker to requeue/redeliver the message. The message will be redelivered until it is `ACCEPTed` or the message’s max redelivery count is exceeded.
Copy link
Collaborator

@Nephery Nephery Mar 11, 2024

Choose a reason for hiding this comment

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

The message will be redelivered until it is ACCEPTed or the message’s max redelivery count is exceeded.

I'm not sure if we should be this specific about what the broker does when we signal a REQUEUE settlement. Since how the broker handles settlements is beyond the binder's scope of responsibility.

Comment on lines +981 to +982
1. Say the current message is marked for 'REQUEUE'. Any subsequent messages that are currently spooled on the client side, despite having been acknowledged `ACCEPTed` by binder, the Solace broker will discard their ACK.
2. The Solace Broker will redeliver all messages starting with the one tagged as 'REQUEUE', if the message's max redelivery count is not exceeded.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Same question as the other PS+ broker question: Should we be this specific about what the broker does when handling settlements?

IMO I think it might be better to have a short description about this and link to the official docs that describes these details (assuming it exists).

Copy link
Collaborator

@Nephery Nephery left a comment

Choose a reason for hiding this comment

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

This looks good now. Thanks @mayur-solace !

That +1,191 −4,348 line changes is pretty satisfying to see 😄

@Nephery Nephery merged commit 332275c into SolaceProducts:stage-4.0.0 Mar 15, 2024
2 checks passed
Nephery added a commit that referenced this pull request Apr 3, 2024
* DATAGO-67282: NACK Support for Consumer bindings (#270)

* DATAGO-67282: Added NACK Support feature, removed ITs related to rebind
* DATAGO-67282: Removed stale tests related to rebind
* DATAGO-67282: Added IT, Removed Commented Code
* DATAGO-67282: Added javadocs
* DATAGO-67282: Updated the version in pom. Updated the spring-cloud-dependencies version and sol-jcsmp version
* DATAGO-67282: Remove unused consumer binding properties flowPreRebindWaitTimeout, flowRebindBackOffInitialInterval, flowRebindBackOffMaxInterval, flowRebindBackOffMultiplier

* Update BOM README for 4.0.0 Release (#274)

* DATAGO-72125: Logger change to not print stacktrace. (#275)

* DATAGO-72125: Logger changes (#276)

* DATAGO-71389: Solace Binder 5.0 version upgrade/migration guide (#277)

* DATAGO-67282: Resolve merge conflicts

* DATAGO-67282 Resolve Merge Conflicts with master (#281)

* Release 3.2.0 (#279) (#280)

* DATAGO-67277: Feature to exclude header on consumer binding

Co-authored-by: mayur-solace <81177023+mayur-solace@users.noreply.github.com>

* DATAGO-67282: Resolve merge conflicts

---------

Co-authored-by: Jeffrey D <11084623+Nephery@users.noreply.github.com>

* Revert "DATAGO-67282 Resolve Merge Conflicts with master (#281)" (#282)

This reverts commit 114ab2e.

* DATAGO-67282: Update the Spring Boot and Spring Cloud Version (#287)

---------

Co-authored-by: mayur-solace <81177023+mayur-solace@users.noreply.github.com>
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.

None yet

2 participants