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
{{ message }}
Repository navigation
[Due for payment 2026-02-16] [Onyx Audit] Remove Outdated Batching Mechanism from Onyx #79338
A lot of time ago the withOnyx HOC was the primary subscription mechanism in the Onyx.
To optimize performance, a custom batching system that uses unstable_batchedUpdates from React was implemented.
This batching logic collects multiple state updates to group subscriber notifications into a single React render cycle.
The withOnyx HOC has been deprecated in favor of the useOnyx hook.
React 18 introduced automatic batching for all updates (including those in promises, setTimeout, and native event handlers), which changes how state updates are batched in modern React applications.
Problem
When Onyx processes state updates in a codebase that no longer uses withOnyx, if legacy batching logic is still applied, then state update behaviour becomes harder to understand and maintain without providing clear benefits.
Solution
Remove the entire custom batching mechanism from Onyx and rely on React's native automatic batching capabilities.
Draft PR: Expensify/react-native-onyx#689
P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do!
changed the title [-][Onyx Audit] Remove Outdated Batching Mechanism from Onyx[/-][+][Due for payment 2026-02-16] [Onyx Audit] Remove Outdated Batching Mechanism from Onyx[/+]on Feb 16, 2026
Activity
melvin-bot commentedon Jan 12, 2026
Triggered auto assignment to @bfitzexpensify (
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.melvin-bot commentedon Jan 12, 2026
Current assignee @mountiny is eligible for the AutoAssignerNewDotQuality assigner, not assigning anyone new.
VickyStash commentedon Jan 12, 2026
The PR has been opened for review!
melvin-bot commentedon Jan 20, 2026
@VickyStash Still overdue 6 days?! Let's take care of this!
9 remaining items
VickyStash commentedon Jan 23, 2026
Bump PR was merged!
🤞 for it to hit the prod!
mountiny commentedon Jan 24, 2026
Nice job!
melvin-bot commentedon Feb 16, 2026
This issue has not been updated in over 15 days. @VickyStash, @mountiny, @bfitzexpensify, @stitesExpensify, @mkhutornyi eroding to Monthly issue.
P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do!
[-][Onyx Audit] Remove Outdated Batching Mechanism from Onyx[/-][+][Due for payment 2026-02-16] [Onyx Audit] Remove Outdated Batching Mechanism from Onyx[/+]mountiny commentedon Feb 16, 2026
$250 to @mkhutornyi
mountiny commentedon Feb 16, 2026
@VickyStash This can be closed after the payment, right?
VickyStash commentedon Feb 16, 2026
@mountiny Yeah, i think so
bfitzexpensify commentedon Feb 20, 2026
Payment summary:
@mkhutornyi due $250 via NewDot manual request
quinthar commentedon Mar 28, 2026
Approved $250 to @mkhutornyi