mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-11 17:27:31 +00:00
feat(cache): organization (#8903)
# Which Problems Are Solved Organizations are ofter searched for by ID or primary domain. This results in many redundant queries, resulting in a performance impact. # How the Problems Are Solved Cache Organizaion objects by ID and primary domain. # Additional Changes - Adjust integration test config to use all types of cache. - Adjust integration test lifetimes so the pruner has something to do while the tests run. # Additional Context - Closes #8865 - After #8902
This commit is contained in:
@@ -176,6 +176,16 @@ Milestones are reached upon the first time a certain action is performed. For ex
|
||||
As an extra optimization, once all milestones are reached by the instance, an in-memory flag is set and the milestone state is never queried again from the database nor cache.
|
||||
For single instance setups which fulfilled all milestone (*your next steps* in console) it is not needed to enable this cache. We mainly use it for ZITADEL cloud where there are many instances with *incomplete* milestones.
|
||||
|
||||
### Organization
|
||||
|
||||
Most resources like users, project and applications are part of an [organization](/docs/concepts/structure/organizations). Therefore many parts of the ZITADEL logic search for an organization by ID or by their primary domain.
|
||||
Organization objects are quite small and receive infrequent updates after they are created:
|
||||
|
||||
- Change of organization name
|
||||
- Deactivation / Reactivation
|
||||
- Change of primary domain
|
||||
- Removal
|
||||
|
||||
## Examples
|
||||
|
||||
Currently caches are in beta and disabled by default. However, if you want to give caching a try, the following sections contains some suggested configurations for different setups.
|
||||
@@ -189,6 +199,9 @@ Caches:
|
||||
Instance:
|
||||
Connector: "memory"
|
||||
MaxAge: 1h
|
||||
Organization:
|
||||
Connector: "memory"
|
||||
MaxAge: 1h
|
||||
```
|
||||
|
||||
The following configuration is recommended for single instance setups with high traffic on multiple servers, where Redis is not available:
|
||||
@@ -206,6 +219,9 @@ Caches:
|
||||
Connector: "postgres"
|
||||
MaxAge: 1h
|
||||
LastUsage: 10m
|
||||
Organization:
|
||||
Connector: "memory"
|
||||
MaxAge: 1s
|
||||
```
|
||||
|
||||
When running many instances on multiple servers:
|
||||
@@ -225,6 +241,10 @@ Caches:
|
||||
Connector: "redis"
|
||||
MaxAge: 1h
|
||||
LastUsage: 10m
|
||||
Organization:
|
||||
Connector: "redis"
|
||||
MaxAge: 1h
|
||||
LastUsage: 10m
|
||||
```
|
||||
----
|
||||
|
||||
|
Reference in New Issue
Block a user