Skip to content

[HOLD for payment 2025-02-07] [Performance] Create PING for Pusher Connection  #53826

Closed

Description

@muttmuure

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!


What performance issue do we need to solve?

Intermittently, Pusher becomes unreachable for reasons out of our control and the client needs to reconnect to it, which causes delays or failure to get realtime updates to chat data.

We can't count on Pusher's internal PING to detect liveness -- we need our own application layer Pusher-ping.

What is the impact of this on end-users?

A more reliable Pusher-PING means users get realtime updates to their New Expensify data more reliably.

List any benchmarks that show the severity of the issue

This is a recurring issue: https://expensify.slack.com/archives/C05LX9D6E07/p1731299637345689

Proposed solution (if any)

Develop our own application layer Pusher-PING that works in the same way as our existing PING code, but instead tests the Pusher connection.

List any benchmarks after implementing the changes to show impacts of the proposed solution (if any)

Note: These should be the same as the benchmarks collected before any changes.

Platforms:

Which of our officially supported platforms is this issue occurring on?

  • Android: Native
  • Android: mWeb Chrome
  • iOS: Native
  • iOS: mWeb Safari
  • MacOS: Chrome / Safari
  • MacOS: Desktop

Version Number:
Reproducible in staging?: Y
Reproducible in production?: Y
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
Expensify/Expensify Issue URL:
Issue reported by: @quinthar
Slack conversation: https://expensify.slack.com/archives/C05LX9D6E07/p1731299637345689

View all open jobs on Upwork

Issue OwnerCurrent Issue Owner: @mallenexpensify

Activity

  1. melvin-bot commented on Dec 10, 2024

    @melvin-bot

    Auto-assigning issues to engineers is no longer supported. If you think this issue should receive engineering attention, please raise it in #whatsnext.

  2. melvin-bot commented on Dec 10, 2024

    @melvin-bot

    Triggered auto assignment to @mallenexpensify (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details. Please add this bug to a GH project, as outlined in the SO.

  3. changed the title [-][Performance] Add PING for Pusher Connection[/-] [+][Performance] Create PING for Pusher Connection [/+] on Dec 10, 2024
  4. muttmuure commented on Dec 10, 2024

    @muttmuure
    ContributorAuthor
  5. mallenexpensify commented on Dec 10, 2024

    @mallenexpensify
    Contributor

    Checking to see if Deeter wants assignment here. If not I'll add AutoAssignerNewDotQuality to assign an engineer since this is Quality, High status and the other issue is held on this.

    Guessing it needs to be Internal

  6. melvin-bot commented on Dec 13, 2024

    @melvin-bot

    Triggered auto assignment to @cristipaval (AutoAssignerNewDotQuality)

  7. 56 remaining items

  8. tgolen commented on Feb 6, 2025

    @tgolen
    Contributor

    Update

    • Submitted a new E/App PR to relax some of the PONG requirements to try and dial in the PING PONG mechanism further
    • It still doesn't change the online/offline state of the client yet (that's currently disabled)
    • My goal is to keep an eye on logs and graphs to see if the behavior is less extreme

    Next Steps

    • Have that PR deployed
    • @tgolen monitor logs and graphs

    ETA

    • Next Friday, Feb. 14
  9. melvin-bot commented on Feb 7, 2025

    @melvin-bot

    Payment Summary

    Upwork Job

    BugZero Checklist (@mallenexpensify)

    • I have verified the correct assignees and roles are listed above and updated the neccesary manual offers
    • I have verified that there are no duplicate or incorrect contracts on Upwork for this job (https://www.upwork.com/ab/applicants//hired)
    • I have paid out the Upwork contracts or cancelled the ones that are incorrect
    • I have verified the payment summary above is correct
  10. mallenexpensify commented on Feb 10, 2025

    @mallenexpensify
    Contributor

    I see payment was due a few days ago but I feel like there's more work to do. @ishpaul777 ,
    Is there more than just this PR?

  11. ishpaul777 commented on Feb 11, 2025

    @ishpaul777
    Contributor

    This is #55326 the only one i reviewed,. @tgolen can you confirm if there will be more E/App PR planned where I can help? if no I think we can release the payment

  12. tgolen commented on Feb 11, 2025

    @tgolen
    Contributor
  13. mallenexpensify commented on Feb 12, 2025

    @mallenexpensify
    Contributor

    @ishpaul777 can you please accept the job and reply here once you have?
    https://www.upwork.com/jobs/~021889470488141539583

  14. ishpaul777 commented on Feb 12, 2025

    @ishpaul777
    Contributor

    There might be a couple more frontend PRs, but I think they should all be separate from this.

    happy to help! whenever required 😄


    @ishpaul777 can you please accept the job and reply here once you have?
    https://www.upwork.com/jobs/~021889470488141539583

    Accepted, Thanks!

  15. mallenexpensify commented on Feb 14, 2025

    @mallenexpensify
    Contributor

    Upwork is buggy now so I can't pay, will get to next week, sorry @ishpaul777

  16. mallenexpensify commented on Feb 14, 2025

    @mallenexpensify
    Contributor

    Contributor+: @ishpaul777 paid $250 via Upwork

    I don't think we need a regression test here, comment if you disagree and I can get one created.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

AutoAssignerNewDotQualityUsed to assign quality issues to engineersAwaiting PaymentAuto-added when associated PR is deployed to productionBugSomething is broken. Auto assigns a BugZero manager.EngineeringInternalRequires API changes or must be handled by Expensify staffReviewingHas a PR in reviewWeeklyKSv2

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions