waku-org / pm

Project management, admin, misc
3 stars 1 forks source link

[Milestone] Direct Message Reliability #165

Open plopezlpz opened 6 months ago

plopezlpz commented 6 months ago

Milestone:

Summary

Deliverables

  1. Enable testing of direct messages in unreliable networks:

    1. Provide a list of direct messages to be tested (e.g.: contact request, community join request & response, 1:1 chat, private group...)
    2. 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.
    3. 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.
  2. 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.)

  3. 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)

  4. Telemetry: Fleet logging

    1. enable logging locally to be able to trace relay and light push/filter.
    2. ensure that sync (storev3) hightlights possible issues with missing messages
  5. Reliability Protocol for Relay

  6. Reliability Protocol for Resource-Restricted Clients

  7. Review MVDS usage and fail path

    1. Ensure usage of MVDS on contact requests, join requests, 1:1 chat.
    2. Also review the fail path for MVDS (are messages retried later or is there feedback/retry on the UI)?
    3. Consider adding retry buttons for easy wins (although not fixing the root of the problem it would make the app usable)

Justification

Epics

RAID (Risks, Assumptions, Issues and Dependencies)

plopezlpz commented 6 months ago
  1. Enable testing of direct messages in unreliable networks: