*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