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

API to disable retry for reliable messages (outdated messages) #355

Open
YintheCloud opened this issue Dec 12, 2024 · 1 comment
Open

API to disable retry for reliable messages (outdated messages) #355

YintheCloud opened this issue Dec 12, 2024 · 1 comment

Comments

@YintheCloud
Copy link

I want to implement a data replication system where data is one way replicated from server to client. Replicating data like unit positions should be reliable, while occasional data loss is acceptable. So whenever a new replication message is sent, older messages will no longer perform retransmission. (The last message will need to be reliable so the unit won't stay at wrong places on clients).

@alexdesander
Copy link

This is very interesting and a good usecase. Some ideas:

  • Reliable latest only: The sender only transmits the newest message, not caring about earlier missed acks. The receiver doesn't care about gaps in packet ids. The receiver tracks the highest packet id and drops all packets with id lower than or equal that (to combat duplication or out of order packets). This version is good for saving bandwidth on infrequent updates.

  • Decaying: Messages have a configurable lifetime. If their lifetime is exceeded, they are not allowed to be transmitted again. This is useful in both unreliable and reliable messages. Of course, on decaying reliable messages the receiver needs to not care for packet gaps either. This version is good for frequent updates and using the virtual channel for more than one type of message.

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

2 participants