Hi, 

First of all, that will be a breaking change. In addition, if the user is using 
the old version and then updates to the new version, it is necessary to verify 
and explain the change of request-id plugin. Finally, can you give some info of 
the request-id plugin when etcd is unavailable? 

Fabriceli
https://github.com/Fabriceli

> 2023年6月14日 16:55,Ling Samuel <lingsamuelgr...@gmail.com> 写道:
> 
> *Background*
> 
> The snowflake algorithm in the request-id plugin introduces an unnecessary
> dependency on etcd. This will significantly affect APISIX performance if
> etcd is unavailable.
> 
> Snowflake depends on a unique worker_id, which is acquired from etcd. If
> etcd fails, each request with request-id plugin that uses the snowflake
> algorithm needs to try to retrieve a unique worker_id. This has a
> significant impact on performance.
> 
> In addition, the data plane may not have access to etcd. This limitation
> would make the algorithm completely unusable.
> 
> In the request-id scenario, uuid can generate a globally unique id, which
> is enough for this case.
> 
> So I suggest removing this algorithm from the request-id plugin. There are
> some benefits here:
> 
>   1. reduce code complexity and the maintenance burden
>   2. remove dependency on etcd on the data plane
>   3. reduce the potential instability of request-id that may affect user
>   business

Reply via email to