Skip to content

Configurable Refresh Strategy to Reduce API Overload in Fabric VS Code Extension #69

@kwitcom

Description

@kwitcom

Title: Configurable Refresh Strategy to Reduce API Overload in Fabric VS Code Extension

Description:
The Fabric Data Engineering VS Code extension currently polls the backend continuously for workspace content changes, regardless of whether the tree view is visible. This causes frequent 429 (Too Many Requests) and timeout errors, especially when working in notebooks or under high load.

Problem Statement:

  • The background polling runs constantly, even when the Fabric tree is not in use.
  • This results in API rate-limiting (429 errors), reduced stability, and slower performance.
  • Notebook-focused workflows do not benefit from this polling.

Proposed Feature:
Introduce a user-configurable setting: fabricDataEngineering.autoRefresh

Setting Values:

Value         Description                                                          
always       Default behavior. Always poll in background.                        
onViewActive Poll only when the Fabric tree view is focused/visible.            
onDemand     Disable background polling entirely. User must manually refresh.    

Suggested Implementation:

  • Detect tree view visibility (onDidChangeVisibility in VS Code API).
  • Suspend polling when tree is hidden.
  • Resume only when view regains focus.
  • Optionally expose a manual Refresh command in the Fabric tree menu.

Benefits:

  • Prevents API rate limit errors and background congestion.
  • Improves extension responsiveness during notebook editing.
  • Respects compute/network constraints in enterprise deployments.
  • Enhances user control over extension behavior.

Business Impact:

  • Users on shared tenants or under concurrency quotas are frequently impacted.
  • Provides much-needed guardrails for multi-user and long-session workloads.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions