Because APISIX is multiple worker architecture, the same route configuration will be sent multiple times as different PrepareConf Requests.
When developing a plugin in the runner, we need a way to store route level data, which is useful for limit-req or other similar features. A natural way to do it is to store the data in the route configuration. However, as the PrepareConf Requests are redundant, we can't ensure the route configurations in the runner to be unique per route. Therefore, here I propose to add the idempotent key to the PrepareConf request. We already use a conf_key as the key to identify routes at the worker level. What we need to do is: 1. send this key via a new field "key" in the PrepareConf request to the runner. 2. before parsing the configuration, the runner needs to check if the request with the same key has been processed. If so, the runner returns the token of the previous request directly. What about your opinions?