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

Delivery confirmation of published messages #15

Merged
merged 1 commit into from
May 11, 2022

Conversation

bstasyszyn
Copy link
Contributor

This commit adds a flag to the publish config that turns on delivery confirmation. If set to true then the Publish function waits until a confirmation is received from the AMQP server to guarantee that the message is delivered. By default, delivery of published messages is not confirmed.

Signed-off-by: Bob Stasyszyn [email protected]

This commit adds a flag to the publish config that turns on delivery confirmation. If set to true then the Publish function waits until a confirmation is received from the AMQP server to guarantee that the message is delivered. By default, delivery of published messages is not confirmed.

Signed-off-by: Bob Stasyszyn <[email protected]>
@bstasyszyn
Copy link
Contributor Author

@roblaszczak @m110 This PR is ready for review. Thx.

bstasyszyn added a commit to bstasyszyn/orb that referenced this pull request May 10, 2022
When an AMQP server is restarted, the Orb pub-sub client receives a success response when publishing a message even though the message may not have been persisted by the AMQP server (because the server has died) and therefore the message is lost. This commit uses the latest version of watermill-amqp which adds a delivery confirmation feature. A failed delivery confirmation results in the message being retried (according to the pub-sub redelivery mechanism).

A new startup parameter was added to enable/disable delivery confirmations. Delivery confirmations are enabled by default.

(Note that the delivery confirmation pull request (ThreeDotsLabs/watermill-amqp#15) has not yet been merged, so this commit points to the TrustBloc fork of watermill-amqp. Once the PR is merged, Orb should be updated to point to the official library.)

closes trustbloc#1290

Signed-off-by: Bob Stasyszyn <[email protected]>
bstasyszyn added a commit to bstasyszyn/orb that referenced this pull request May 10, 2022
When an AMQP server is restarted, the Orb pub-sub client receives a success response when publishing a message even though the message may not have been persisted by the AMQP server (because the server has died) and therefore the message is lost. This commit uses the latest version of watermill-amqp which adds a delivery confirmation feature. A failed delivery confirmation results in the message being retried (according to the pub-sub redelivery mechanism).

A new startup parameter was added to enable/disable delivery confirmations. Delivery confirmations are enabled by default.

(Note that the delivery confirmation pull request (ThreeDotsLabs/watermill-amqp#15) has not yet been merged, so this commit points to the TrustBloc fork of watermill-amqp. Once the PR is merged, Orb should be updated to point to the official library.)

Also:
- Added a BDD test for AMQP server restart
- Changed the onboarding-and-recovery BDD test to be run only for local CAS in order to reduce the time to run the integration tests

closes trustbloc#1290

Signed-off-by: Bob Stasyszyn <[email protected]>
@m110
Copy link
Member

m110 commented May 11, 2022

Thanks for another high-quality contribution @bstasyszyn! :)

@m110 m110 merged commit f8efc81 into ThreeDotsLabs:master May 11, 2022
@bstasyszyn bstasyszyn deleted the publishconfirmation branch May 11, 2022 20:30
@bstasyszyn bstasyszyn restored the publishconfirmation branch June 17, 2022 13:51
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.

4 participants