-
Notifications
You must be signed in to change notification settings - Fork 5
Description
Problem: Promise resolutions sent via deliverNotify() can be lost if the connection drops before delivery. There's no persistent tracking of unresolved promises that have been sent to remotes, no retry mechanism for promise notifications after reconnection, and no timeout-based cleanup of promises that remain unresolved after 5 minutes.
Expected Behavior:
- Track unresolved promises sent via
deliverNotify()persistently - Retry delivery of promise notifications after reconnection
- Implement timeout-based cleanup of promises that remain unresolved after 5 minutes
- Ensure promise-based coordination between kernels remains reliable
Note: If #656 "Message Acknowledgment and Retransmission" is implemented, this issue can be simplified to use that general ACK mechanism instead of separate promise notification tracking. The general ACK system would cover promise notifications along with all other messages.
Implementation (if done separately):
- Add persistent tracking of promise notifications sent via
deliverNotify() - Track which promise notifications are awaiting delivery confirmation
- Retry promise notifications after reconnection if not confirmed
- Clean up promises that remain unresolved after 5 minutes
- Store tracking in kernel store for persistence
Implementation (if using general ACK mechanism):
- Use the general message ACK/retry system for promise notifications
- Ensure promise notifications are included in ACK tracking
- Verify timeout and retry behavior works for promise notifications specifically
Current behavior: deliverNotify() just sends the message via sendRemoteMessage() with no tracking or retry.