Skip to content

[Task] Define the boundary between ShenYu main repo and shenyu-client-java #6364

Description

@Aias00

Description

Background

ShenYu is splitting Java client-side modules into apache/shenyu-client-java so the client can keep JDK 8 compatibility while the main ShenYu repository can evolve admin/bootstrap/runtime independently,
including future JDK 21+ and virtual thread work.

We need a clear boundary between the two repositories to avoid duplicated logic, hidden source coupling, or unclear ownership.

Tasks

  • Inventory client-related modules currently in the main ShenYu repository.
  • Inventory modules currently restored or expected in shenyu-client-java.
  • Define which responsibilities belong to the main repo.
  • Define which responsibilities belong to shenyu-client-java.
  • Identify shared concepts that should be treated as protocol contracts rather than shared source code.
  • Identify any remaining main repo dependency on client-side DTOs, constants, or utilities.
  • Document the agreed boundary in a markdown document.

Expected Output

A document covering:

  • Main repo responsibilities: admin, bootstrap, gateway runtime, plugins, sync, management APIs.
  • Client repo responsibilities: Java client, starters, registration SDK, beat, discovery registration, MCP client registration.
  • Cross-repo contract points: registration protocol, beat protocol, discovery instance protocol, MCP registration protocol.
  • Rules for future changes across the two repositories.

Acceptance Criteria

  • The document clearly states what belongs in each repo.
  • The document identifies at least one owner/reviewer area for protocol changes.
  • The document can be referenced by future PRs that move or modify client-related code.

Task List

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions