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

add validation of update responses at least once per update interval #8

Closed
andrewhodel opened this issue Nov 22, 2022 · 3 comments
Closed

Comments

@andrewhodel
Copy link
Contributor

Only one update message is sent every update interval.

If there is network congestion, there is no retry until the next update interval and this could cause invalid outages.

@andrewhodel
Copy link
Contributor Author

The sequence numbers are not needed because the order of updates is verified or never delivered to the server by the TCP sequence numbers that already exist. This means that there will never be an out of order update that is sent from the same TCP origin ONLY IF THE TCP SEQUENCE NUMBER IS ACCOUNTED FOR BY THE SERVER WITH UPDATE REQUESTS.

There needs to be a sequence number sent by the client and sent in the update response in update requests, not in config requests because the update requests send data that is charted through time.

@andrewhodel
Copy link
Contributor Author

andrewhodel commented Mar 2, 2023

The sequence number from TCP is not available in Go.

If the client sends sequence numbers in the update JSON instead, the gain is knowing that client restarted.

The loss is that the client now must ensure resends because an initial message number of 0 after a client start or restart will require that 1 is never sent if the previous last sequence number sent was 1.

@andrewhodel
Copy link
Contributor Author

andrewhodel commented Mar 2, 2023

The listener was upgraded to accept sequence numbers and validate them if they are sent in #8

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

No branches or pull requests

1 participant