You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After reconnecting, client has some state and last seq number that it processed. After reconnection the client first skips all messages prior to the one it had already seen and then starts processing new messages.
The problem is that there could be significant amount of messages to be processed after our last message (because we were long offline). Ideally we would like last historical message to be specially marked.
Why?
Imagine we don't get this, we have to do workarounds:
1/ start interacting with the head while historical messages are being processed
2/ wait x amount of seconds minutes before we start interacting with the head again, e.g. no new messages are being pipped
I do understand this can be problematic to implement but I still wanted to flag this as implementing this on the client is not fun either.
Option 1:
will result in likely issues as the assumed head state maybe in a different de facto state
Option 2:
now we have to do some time heuristics and if the head is online with other participants advancing the state the best option we have is heuristics to check how far away messages are from current timestamp. Relaying on timestamps is brittle since the server and the client may have different local times...
The text was updated successfully, but these errors were encountered:
@matiwinnetou There is a special Greetings message. Right now it is part of the history, so you would see it multiple times when you reconnect multiple times. But if we only send Greetings once all the history was sent out .. would that work for you?
I think sending out Greetings message once all history has been send out is sensible. Alternatively it could be another Greetings message, when all history is processed.
So keep existing Greetings and introduce new message, e.g. "HistoryReplayed".
After reconnecting, client has some state and last seq number that it processed. After reconnection the client first skips all messages prior to the one it had already seen and then starts processing new messages.
The problem is that there could be significant amount of messages to be processed after our last message (because we were long offline). Ideally we would like last historical message to be specially marked.
Why?
Imagine we don't get this, we have to do workarounds:
1/ start interacting with the head while historical messages are being processed
2/ wait x amount of seconds minutes before we start interacting with the head again, e.g. no new messages are being pipped
I do understand this can be problematic to implement but I still wanted to flag this as implementing this on the client is not fun either.
Option 1:
Option 2:
The text was updated successfully, but these errors were encountered: