Skip to content

feat: implement AppService control plane proxy with TTL cache#7176

Open
AdilFayyaz wants to merge 4 commits intoadil/apps-internal-servicefrom
adil/apps-app-service
Open

feat: implement AppService control plane proxy with TTL cache#7176
AdilFayyaz wants to merge 4 commits intoadil/apps-internal-servicefrom
adil/apps-app-service

Conversation

@AdilFayyaz
Copy link
Copy Markdown

@AdilFayyaz AdilFayyaz commented Apr 9, 2026

Depends on: #7175

Why are the changes needed?

The control plane needs a stable API surface for app management without making direct K8s calls. AppService proxies to InternalAppService (data plane) and adds a TTL cache to reduce cross-plane RPC calls on hot Get paths.

What changes were proposed in this pull request?

  • Added app/service/AppService — cache-aside proxy over InternalAppService; Get reads from cache, mutations invalidate, Watch is a streaming passthrough
  • Added app/setup.go — mounts AppService on the control plane mux; in unified mode routes to /internal on the same mux with no network hop
  • Restructured config: app/internal/config/InternalAppConfig (data plane) and app/config/AppConfig (control plane, holds CacheTTL + InternalAppServiceURL)
  • Removed AppService stub and wiring from runs/ — no longer needed there

How was this patch tested?

  • go test ./app/service/... — 8 unit tests covering cache hit, miss, TTL expiry, invalidation on Create/Update/Delete, List always forwarding, and Watch stream proxying
  • go test ./app/internal/service/... — covers InternalAppService RPCs including DesiredState branching, pagination, and Watch initial snapshot
  • go test ./app/... — all packages pass

Setup process

Screenshots

Check all the applicable boxes

  • I updated the documentation accordingly.
  • All new and existing tests passed.
  • All commits are signed-off.

Related PRs

Docs link

Signed-off-by: M. Adil Fayyaz <62440954+AdilFayyaz@users.noreply.github.com>
Signed-off-by: M. Adil Fayyaz <62440954+AdilFayyaz@users.noreply.github.com>
Signed-off-by: M. Adil Fayyaz <62440954+AdilFayyaz@users.noreply.github.com>
Signed-off-by: M. Adil Fayyaz <62440954+AdilFayyaz@users.noreply.github.com>
@AdilFayyaz AdilFayyaz self-assigned this Apr 9, 2026
@AdilFayyaz AdilFayyaz added added Merged changes that add new functionality flyte2 labels Apr 9, 2026
@AdilFayyaz AdilFayyaz changed the title feat: implement AppService control plane proxy with TTL cach feat: implement AppService control plane proxy with TTL cache Apr 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

added Merged changes that add new functionality flyte2

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant