Update services.Service with placement.Placement in m3cluster
Hi,
I noticed you guys are using the services.Service interface from m3cluster, I would like to recommend you guys to switch to placement.Placement instead unless you need to filter by healthy/unhealthy nodes in the placement.
The Service interface is a thin wrapper on top of Placement interface and the main goal is to filter out unhealthy nodes but that behavior ended up not being used in m3, as you can see more operations has been built on Placement and PlacementService interface than service.Service (like MarkShardsAvailable etc).
I hope one day we can migrate m3 to placement.Placement only and deprecate services.Service, and removing external dependencies on services.Service would help reaching that.
Let me know if you have any concerns.
Thanks, Chao
a quick search reveals our usage of services.Service interface is from the dynamic topology, which is derived from m3db's dynamic topology class. If you guys are rewriting the topology class, we can also migrate to the new implementation.