In Hybrid mode, whenever you make changes to Kong Gateway entity configuration on the Control Plane, it immediately triggers a cluster-wide update of all Data Plane configurations. In these updates, Kong Gateway sends the entire configuration set to the Data Planes. The bigger your configuration set is, the more time it takes to send and process, and the more memory is consumed proportional to the configuration size. This can result in latency spikes and loss in throughput for high-traffic Data Planes under certain conditions.
You can enable incremental configuration sync to address this issue. When entity configuration changes, instead of sending the entire configuration set for each change, Kong Gateway only sends the parts of the configuration that have changed.
flowchart TD A[Client] B(Kong Control Plane) C(
Kong Data Plane) D(
Kong Data Plane) E[Client] F(
Kong Control Plane) G(
Kong Data Plane) H(
Kong Data Plane) subgraph id1 [Incremental config sync] direction TB E --"POST Route config 1 entity A few KB"---> F --"Updated Route config 1 entity A few KB"---> G & H end subgraph id2 [No incremental config sync] direction TB A --"POST Route config 1 entity A few KB"---> B --Full Kong config 30k entities 30MB---> C & D end style id1 stroke-dasharray:3,rx:10,ry:10 style id2 stroke-dasharray:3,rx:10,ry:10
Figure 1: In an environment with 30k entities of about 30MB total, sending a
POST
request to update one entity sends the whole 30MB config to every Data Plane. With incremental config sync enabled, that samePOST
request only triggers an update of a few KB.
Incremental config sync achieves significant memory savings and CPU savings. This means lower total cost of ownership for Kong Gateway users, shorter config propagation delay, and less impact to proxy latency. See our blog on incremental config sync for the performance comparisons.