Skip to content

Grpc service poc#395

Draft
DTCurrie wants to merge 13 commits intomainfrom
grpc-service-poc
Draft

Grpc service poc#395
DTCurrie wants to merge 13 commits intomainfrom
grpc-service-poc

Conversation

@DTCurrie
Copy link
Collaborator

This is a draft PR of the entire feature, but obviously way too much to go through at once. I will be breaking this up into smaller PR,s so don't worry about granular review at this point.

The major things to look at to make sure we are all agreed on are:

  1. The new proto/draw/v1/service rpc service, which will maintain a world state for our draw client
  2. The implementation of that service in draw/draw_service.go, which exposes the basic CRUD APIs along with streaming for transform, drawing, and scene changes.
  3. A quick scan of the new client/apis to get a feel for the approach. You may ask yourself, why are we creating these new structs for these APIs? My reasoning is that this gives us a buffer layer between our draw APIs, which are pretty tightly defined, and the downstream user requests/DX for drawing things specifically to our client. That means we should have much more flexibility when making changes there for future releases.
  4. A quick scan of the draw changes. Nothing major here, just mostly some cleanup for consistency, especially when it comes to drawing geometries, frames, and geometries in frames. We basically just copied and pasted the original client APIs for these, but they were inconsistent with other draw APIs. Now they are. Also, made some things public, like options, since they are useful for building drawings, and added downscaling as a supported feature (just for point clouds for now).
  5. The new useDrawService.svelte.ts hook which is our frontend hook for all the drawing logic.
  6. A quick scan of the new draw-client.spec.ts e2e tests. It is basically the same as our old one, but with even more tests to cover our features, and I think a better flow to reduce flakiness or scene pollution between tests.
  7. Finally, the snapshots. I took snapshots of all the e2e tests, which cover all client APIs, so we should be able to confirm via snapshot that things are rendering as expected. I made some minor changes to the e2e tests to make them less flaky and clearer about what they test, but most things should be 1:1.

I wouldn't spend more than a few minutes on review. I am mostly just looking for general design/approach/architecture input on this. We can get into full reviews when I break this up into reasonable chunks.

@changeset-bot
Copy link

changeset-bot bot commented Feb 13, 2026

⚠️ No Changeset found

Latest commit: 8bd0634

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant