CAICAIIs opened a new pull request, #1138: URL: https://github.com/apache/incubator-seata-go/pull/1138
## Summary - Add an optional `RegistrySubscriber` capability without changing `RegistryService`. - Introduce backend-neutral full-snapshot events using `[]*ServiceInstance`. - Reuse the existing `AddressStore` for atomic initial snapshots and change delivery. - Implement subscription support for the etcd3 registry. - Serialize callbacks per subscription and coalesce intermediate snapshots for slow listeners. - Make `Unsubscribe` idempotent and clean up active subscriptions when the registry closes. - Continue etcd watches from the snapshot revision to avoid the Get/Watch revision gap. `Lookup` behavior remains unchanged. Registries without watch support can continue implementing only `RegistryService`. ## Tests - `go test ./pkg/discovery` - `go test -race ./pkg/discovery` - `go test ./pkg/remoting/getty` - `go vet ./pkg/discovery` - Repeated focused subscription and watch revision tests A local `go test ./...` run was blocked only by a timeout downloading the RocketMQ client dependency from `proxy.golang.org`. ## Non-goals - Nacos, ZooKeeper, Consul, or Redis adapters - Remoting/session manager integration - Java naming compatibility - `seata-ctl` changes - Recovery from canceled or compacted etcd watches -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
