1. The execution process of traffic shift can be understood as these components: route (data structure) -> traffic shift (algorithm) -> upstream(s) (data structure).The traffic shift (algorithm) will change according to the business, and the logic that is prone to change is more suitable for implementation through plugins.
That’s true, you convinced me. But some advanced features, like label based endpoint selector is still need the help of the core logic, what the plugin can do is like preparing the necessary parameters for the core logic to run as per it’s settings. So if we implements the traffic split plug-in, a generic, flexible core interface for upstream selection is required (e.g. accepts label set and filter them, which can be chained with load balancer and health check).
