Skip to content

Remove or wire PublishRequest into an RPC #6

@lanycrost

Description

@lanycrost

Problem statement

PublishRequest is defined in transport.proto with full structure (oneof frame, metadata, payload, inputs, transports, envelope) but is not referenced by any service RPC. It exists in all generated bindings (Go, TypeScript, Python), polluting the API surface and confusing SDK developers who discover the type and assume it's usable.

Proposed change

One of:

  1. Remove it if it was speculative and no pub/sub RPC is planned near-term.
  2. Wire it into a new RPC if pub/sub delivery is on the roadmap:
    service TransportConnectorService {
      // ... existing RPCs
      rpc Publish(stream PublishRequest) returns (stream PublishResponse);
    }
  3. Mark deprecated if removal is planned but not immediate:
    message PublishRequest {
      option deprecated = true;
      // ...
    }

Affected area

  • Proto definitions
  • Generated bindings (will change automatically)

Compatibility / migration

Removing the message is a breaking change for any code that references PublishRequest by name. Check downstream repos (core, bobrapet, bobravoz-grpc, bubu-sdk-go) for imports before removing.

Additional context

Identified during architectural review. Dead contract surface in a foundational layer creates confusion across all SDK languages and bloats generated bindings.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/protoProto definitions, message design, or wire compatibility work.good first issueSmall, well-scoped tasks for new contributors.help wantedLooking for community contributions.kind/refactorCode health, cleanup, or non-functional improvements.priority/mediumNormal priority item.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions