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

hcs-lib: provide interfaces to enable persistence consistency check and database sync #215

Open
zoperado opened this issue Dec 11, 2019 · 1 comment
Labels
enhancement New feature or request P3

Comments

@zoperado
Copy link
Collaborator

zoperado commented Dec 11, 2019

Detailed Description
If an app-net user disconnects from message queue or messages are not delivered for whatever reason then he doesn't know if he is out of sync. When he starts receiving messages again then there is a gap in his record stream while everyone else is in sync. This problem is more evident if two message queues listen to same topic, each of which queue has its own subscribers, and one queue is down while the other is up and delivering messages. The proposed solution is to create persistence interfaces that scan stored records and returns the gaps in sequence numbers: findGaps()->[s0, ... ,sN] where s is a sequence number for which we have not received a message. We should be able to broadcast a request getMessage(seqNo) to the network and a designated user-role can then automatically relay the message associated with the sequence number.

Actual Behavior
In settlements, we may see a settlement net amount whose credit lines don't add up because we failed to receive credit line messages but managed to receive the settlement message.

Expected Behavior
No gaps in records.

Environment:

  • Java: [e.g. OpenJDK 11.0.4]
  • Node: [e.g. v12.9.1-x86]
  • OS: [e.g. Ubuntu 18.04]
  • Version: [e.g. 1.0.1]

Additional Context
Add any other context about the problem here. Attach any logs here, if applicable.

@zoperado zoperado added the bug Something isn't working label Dec 11, 2019
@zoperado
Copy link
Collaborator Author

See #284 and topicGetInfo returns current sequence number. Use topicGetInfo to indicate somewhere whether appclient is in sync. A user may be in doubt whether things are in sync. If we have a small heartbeat, let's say topicGetInfo every 10 seconds or so then: if the lastSeqNo from Mirror isAlotLessThan SeqNo from topicGetInfo then the user can know if things are out of sync

@gregscullard gregscullard added enhancement New feature or request P3 and removed bug Something isn't working labels Mar 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request P3
Projects
None yet
Development

No branches or pull requests

2 participants