Subscribe to PubSub topic before Publishing #30
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a PubSub
Subscribe
into thePutValue
function before calling PubSub'sPublish
.The reason is that the PubSubValueStore is a persistent single writer data store as indicated by its use of a cache for
GetValue
and its use of theisBetter
function to determine what value to return. Were this node toPut
a value that was not "better" than the value already on the network that would likely be a mistake. As a result it shouldSubscribe
so that it has the current "best" value and can compare with that before sending out PubSub requests.While there are scenarios in which the extra inbound messages could be deemed "not worth it" to the
Publisher
, I think you would be hard pressed to find them in this particular scenario. This is even more evident when noting that this router is mostly used by IPNS which plans to use the LWW PubSub implementation under development at libp2p/go-libp2p-pubsub#171.@vyzo @raulk How does this sound to you?