-
-
Notifications
You must be signed in to change notification settings - Fork 93
Open
Labels
featureNew feature or requestNew feature or request
Description
Description
We want to introduce gRPC-based communication for the Server-Driven UI (SDUI) system to replace or complement the existing REST/JSON approach.
The goal is to:
- Improve performance (binary serialization, HTTP/2)
- Enable strongly-typed UI contracts
- Support bi-directional streaming for real-time or progressive UI updates
- Make SDUI more scalable and maintainable across clients
- With gRPC, the server will send UI schemas / component trees defined via .proto messages, and the client will render the UI dynamically based on these definitions.
Requirements:
- Define protobuf schemas for SDUI components (layout, widgets, actions, styles)
- gRPC service for fetching UI definitions
Example: GetScreen(ScreenRequest) -> ScreenResponse - Support versioning of UI schemas to avoid client breakage
- Enable bi-directional or server streaming for:
- Incremental UI loading
- Live UI updates (experiments, feature flags, real-time state)
- Ensure backward compatibility with existing REST-based SDUI (if applicable)
- Client-side gRPC support (mobile/web) with graceful fallback
- Proper error handling and empty/partial UI responses
- Authentication & authorization support (metadata / interceptors)
- Documentation for proto definitions and rendering rules
Additional Context
gRPC is preferred due to:
- Lower payload size vs JSON
- Contract-first development
- Better multi-platform client generation
- This enables A/B testing, feature flags, and remote UI experiments without app updates
Especially useful for:- Home screens
- Dashboards
- Dynamic forms
- Experiment-heavy flows
Optional future extension:
- Cacheable UI responses
- UI diff / patch streaming instead of full screen reloads
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
featureNew feature or requestNew feature or request