Skip to content

[Task] Migrate the Apollo registry, data-sync, admin-listener, and starters to shenyu-plugin-store #7599

Open

Description

@Aias00

Background

Apache ShenYu is executing a phased migration of optional integrations out of the
main repository and into the external extension repository
apache/shenyu-plugin-store (tracked
by #7306). Consul is the reference precedent (#7308), with Eureka (#7596) and etcd
(#7597) following the same pattern.

The registry layer was decoupled in #7578: every registry now implements the
ShenyuInstanceRegisterRepository SPI and is loaded via
ShenyuInstanceRegisterRepositoryFactory.loadRepository, so it can be cleanly
externalized without touching the gateway core. Apollo already follows this pattern
(ApolloInstanceRegisterRepository + RegistrySpiTest), which makes it a good
candidate for the same move.

Note: unlike Consul (already marked external), Apollo is still a first-class,
supported backend
— the README lists it alongside Nacos/etcd as an available
sync mechanism ("HTTP long polling, ZooKeeper, Nacos, etcd, and Apollo are
available"). Therefore externalizing it requires a dev-list consensus + deprecation
cycle, exactly as etcd (#7597). Apollo is also not part of the original #7306
child set (#7294–#7308), so this issue extends the plan rather than completing it.

Scope

Remove / move out of apache/shenyu

  • shenyu-registry/shenyu-registry-apollo (registry implementation; implements ShenyuInstanceRegisterRepository)
  • shenyu-sync-data-center/shenyu-sync-data-apollo (data-sync backend; ApolloDataService, ApolloConfig)
  • shenyu-admin-listener/shenyu-admin-listener-apollo (ApolloSyncConfiguration)
  • shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-apollo
  • shenyu-common/.../constant/ApolloPathConstants.java (evaluate — may be shared; move or keep minimal shim)
  • README.md line "and Apollo are available" → update to "external extension (see plugin-store-apollo.md)"

Add to apache/shenyu-plugin-store

Mirror the Consul structure (docs/plugin-store-consul.md):

  • shenyu-registry-apollo + shenyu-sync-data-apollo + shenyu-admin-listener-apollo + starters
  • docs/plugin-store-apollo.md documenting install/enable + cutover contract

Acceptance Criteria

  • All Apollo artifacts build and pass tests inside shenyu-plugin-store.
  • ShenyuInstanceRegisterRepositoryFactory.loadRepository still resolves Apollo when the plugin-store jar is on the classpath (no core change).
  • docs/plugin-store-apollo.md published with install + enable steps and the [Task] Track the phased migration of optional integrations to shenyu-plugin-store #7306 cutover contract.
  • README updated; deprecation note + migration guide added for one release before removal from core.
  • CI: main-repo build no longer compiles Apollo; plugin-store CI covers it.

Related

Activity

  1. github-actions commented on Oct 13, 2026

    @github-actions
    Contributor

    👋 Hello @Aias00

    A new issue has been opened by @Aias00:

    Please review when you have time. Thank you! 🙏

  2. yangjj-iso commented on Oct 14, 2026

    @yangjj-iso
    Contributor

    /assign

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions