DEV Community

loading...

Discussion on: What is Geo Redundancy?

Collapse
davidcockerill profile image
DavidCockerill Author • Edited

Hi Pavel, sorry about that, we've updated the link to link to a more insightful document: harperdb.io/developers/documentati...

Pub/sub means a node can publish and/or subscribe to another node. If node A publishes to node B, any changes on node A will be published to node B. If changes happen on node B they will not be reflected on node A. However, if node A is subscribed to node B, changes on node B will be reflected on node A.

I hope that wasn’t too confusing of an explanation.

Collapse
hanpari profile image
Pavel Morava

Thank you. I thought it was some synchronizing mechanism because I was under an impression that being in sync is desired for both nodes.

I wonder what is the use case for nodes being able to communicate in only one way. Does it mean one will get different data from the nodes if querying them simultaneously?

I will check the link.

Thread Thread
davidcockerill profile image
DavidCockerill Author

Pavel, in many cases you're right, two-way synchronization is ideal. This is easily done by enabling both publish and subscribe on each table, that will result in complete two-way replication.

However, we think it's important to give users granular control of their replication for cases where one-way replication may be ideal. For example, if the sole purpose of node B was to provide redundancy for node A and you weren’t making any create/update operations on node B that needed to be reflected on node A, the communication can be one way (A -> B).

Another case where this may be valuable is in sensor data collection. You may have many nodes collecting sensor data that only care about that sensor, but the data could be replicated up to a primary reporting node that would have values from all sensors. In this case, one way replication is important and queries on each node would result in different data sets.

Thread Thread
hanpari profile image
Pavel Morava

I see. Thank you for the explanation, David. What about adding it to your post since it is quite helpful? 😉