this is NOT how you do any of the things mentioned. i understand startTransition and deferredValue and it's cases but this aint it. You should NEVER use it for API calls (sending analytics for eg). you should ALWAYS debounce the API call. This would trigger API on each keystroke.