Skip to content

feat: add a gRPC network transport in its own module#84

Merged
joshua-temple merged 1 commit into
mainfrom
feat/transport-grpc
May 31, 2026
Merged

feat: add a gRPC network transport in its own module#84
joshua-temple merged 1 commit into
mainfrom
feat/transport-grpc

Conversation

@joshua-temple
Copy link
Copy Markdown
Collaborator

Adds a real gRPC network transport as a new crucible/transport module, so a cluster spans processes over the wire while the cluster core stays stdlib-only — a deployment using only the in-memory transport never compiles gRPC in. The client Transport satisfies cluster.Transport and routes deliver/spawn to the gRPC server of the node that owns the target actor; NewServer serves a node's cluster.WireEndpoint. Payloads ride the wire as the JSON the wire-codec seam already produces, via a JSON gRPC codec and a hand-written service descriptor — no protobuf schema or codegen is introduced. The grpc dependency is isolated to this module (its own go.mod), matching the suite's pattern of confining heavy deps. Tested end to end over an in-memory gRPC connection (bufconn): remote spawn + deliver, server interceptor path, and error propagation. CI (lint/race-matrix/vuln/coverage@90) is wired for the new module. Coverage: transport 90.6 percent. Additive; new module.

Signed-off-by: Joshua Temple <joshua.temple@stablekernel.com>
@joshua-temple joshua-temple merged commit d791a56 into main May 31, 2026
10 checks passed
@joshua-temple joshua-temple deleted the feat/transport-grpc branch May 31, 2026 17:30
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