Goal: Connection management issues are fixed and tested (to avoid regressions) in Status Mobile and Desktop.
Research tracks: Message Reliability
Estimated date of completion: 2024Q2
Deliverables
Enable testing of direct messages in unreliable networks:
Provide a list of direct messages to be tested (e.g.: contact request, community join request & response, 1:1 chat, private group...)
In cases of temporary losing connection a message that is supposed to be sent needs to be: sent, retried on connection recover or failed (and add a button for manual retry if the auto-retry option is not easy to do). Test how this is behaving for the messages previously listed.
Provide binaries for Vac/QA to setup regression functional tests (black box/e2e) to run simulations in bad connection environments to verify status connection management.
Review connection management strategy & back-off & long disconnection issues
Based on (1) review and fix (if necessary) the connection and peer management code from status-go & go-waku for relay and light client protocols.
(Ensure that broken scenarios from dogfooding and Vac/QA testing are covered. Including but not limited to desktop sleep/hibernate and failure to send messages after current backoff strategy.)
Telemetry: direct message reliability (desktop & mobile):
Add data to telemetry service such as if the message came from relay or store, or if the app was online or offline (via heartbeat), add content topic data. Further discussion here.
(Currently telemetry can be enabled only on desktop's settings, not on mobile)
Telemetry: Fleet logging
enable logging locally to be able to trace relay and light push/filter.
ensure that sync (storev3) hightlights possible issues with missing messages
Reliability Protocol for Relay
Reliability Protocol for Resource-Restricted Clients
Review MVDS usage and fail path
Ensure usage of MVDS on contact requests, join requests, 1:1 chat.
Also review the fail path for MVDS (are messages retried later or is there feedback/retry on the UI)?
Consider adding retry buttons for easy wins (although not fixing the root of the problem it would make the app usable)
Justification
Epics
research:
js-waku:
nwaku:
go-waku:
QA:
Docs:
Eco-Dev:
RAID (Risks, Assumptions, Issues and Dependencies)
Milestone:
Summary
Deliverables
Enable testing of direct messages in unreliable networks:
Review connection management strategy & back-off & long disconnection issues Based on (1) review and fix (if necessary) the connection and peer management code from status-go & go-waku for relay and light client protocols. (Ensure that broken scenarios from dogfooding and Vac/QA testing are covered. Including but not limited to desktop sleep/hibernate and failure to send messages after current backoff strategy.)
Telemetry: direct message reliability (desktop & mobile): Add data to telemetry service such as if the message came from relay or store, or if the app was online or offline (via heartbeat), add content topic data. Further discussion here. (Currently telemetry can be enabled only on desktop's settings, not on mobile)
Telemetry: Fleet logging
Reliability Protocol for Relay
Reliability Protocol for Resource-Restricted Clients
Review MVDS usage and fail path
Justification
Epics
RAID (Risks, Assumptions, Issues and Dependencies)