One way we could think of is using PropertySet (at environment level) and keeping the overridden values in propertySet, like:
client_A.endpoint_1 = "100TPS"
In the JS Policy where we are setting the value in SpikeArrest, we first check the value in flowVariables, like:
propertyset.[property_set_name].client_A.endpoint_1
If its found, we replace it in SpikeArrest value and if NOT found we search for it in KVM. This way we can override it.
If we want to go with this approach, do we have some limitations of PropertySet which can impact the implementation/performance.
What are the limits?
- Total number of PropertySet that we can have in an environment. Is it 100?
- Total number of records that a PropertySet have OR is there some limitation on size of PropertySet?
Also, do we see any performance issue if we have large number of records in PropertySet, as they will always be loaded, but will be used for only a limited number of endpoints? e.g. we will have say 5000 endpoints and may have to override a limited number of endpoints for a limited number of clients. May be like 500 entries in PropertySet, which will always be loaded, and added as flowVariables.
Any suggestion for a better design to solve our requirement?