Common workflows
Build an agent or session runner
Typical gRPC flow:
- Call
SessionService.CreateSession. - Call
FileSystemService.GetFileManifestto discover structure. - Stream or range-read the files you actually need with
ReadFileorStreamFileRange. - Apply mutations with
WriteFile,PatchSegments,ExecuteBatch, and related filesystem RPCs. - Report health with
HealthService.ReportTestResults. - Publish runtime events with
MessageBusService.Publishif your system emits session-scoped status. - Request human approval with
OversightService.RequestApprovalwhen your workflow needs a decision gate. - Persist the result with
PersistenceService.CommitSession.
This is the strongest fit for gRPC because it combines typed control RPCs with streaming file access.
Build a reviewer or oversight surface
Typical gRPC flow:
- Read session state with
SessionService.GetSession. - Load structure with
FileSystemService.GetFileManifest. - Read annotations with
AnnotationService.GetAnnotations. - Read health with
HealthService.GetSessionHealth. - Read immutable history with
ObservabilityService.GetEventLog. - Grant or deny approvals with
OversightService.GrantApprovalandOversightService.DenyApproval.
This is a mixed case. Many teams may choose HTTP here, but gRPC is still reasonable if your reviewer product is a server-side integration rather than a browser-only app.
Build a low-latency file integration
Typical gRPC flow:
- Discover files with
GetFileManifest. - Use
ReadFileorStreamFileRangefor reads. - Use
WriteFilefor full-content replacement writes. - Use
PatchSegmentsorGetCasExtentswhen you need sparse or CAS-aware flows. - Use
GetXattr,SetXattr, lock RPCs, symlink RPCs, or batch mutations when the integration needs filesystem semantics beyond plain read and write.
This is where gRPC is materially better than a JSON gateway.
Manage reusable sources and imports
Typical gRPC flow:
- Create a source with
UnderlaySourceService.CreateSource. - Start import with
StartSourceImportor stream archive data withUploadSourceArchive. - Poll job state with
GetSourceImportJob. - Refresh an existing source with
RefreshSource. - Promote a prepared session into a managed source with
PromoteSessionToSource.
This is about source import, refresh, and promotion workflows, not generic source control. The archive-upload path is especially gRPC-friendly because it is client-streaming.
Build usage or analytics reporting
Typical gRPC flow:
- Read tenant usage with
UsageService.GetUsage. - Read per-session analytics with
AnalyticsService.GetSessionAnalytics. - Correlate with session state, health, and event-log reads when needed.
When to pick HTTP instead
Pick the HTTP surface instead if:
- you need browser-first JSON calls
- you want the OpenAPI explorer as the main reference
- your integration does not benefit from streams
- you are primarily wiring control-plane forms and dashboards
Pick gRPC when the integration is service-to-service, typed, or stream-heavy.