mirror of
https://github.com/zitadel/zitadel.git
synced 2024-12-16 21:08:00 +00:00
4eaa3163b6
# Which Problems Are Solved We identified the need of caching. Currently we have a number of places where we use different ways of caching, like go maps or LRU. We might also want shared chaches in the future, like Redis-based or in special SQL tables. # How the Problems Are Solved Define a generic Cache interface which allows different implementations. - A noop implementation is provided and enabled as. - An implementation using go maps is provided - disabled in defaults.yaml - enabled in integration tests - Authz middleware instance objects are cached using the interface. # Additional Changes - Enabled integration test command raceflag - Fix a race condition in the limits integration test client - Fix a number of flaky integration tests. (Because zitadel is super fast now!) 🎸 🚀 # Additional Context Related to https://github.com/zitadel/zitadel/issues/8648
23 lines
850 B
Go
23 lines
850 B
Go
package noop
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/zitadel/zitadel/internal/cache"
|
|
)
|
|
|
|
type noop[I, K comparable, V cache.Entry[I, K]] struct{}
|
|
|
|
// NewCache returns a cache that does nothing
|
|
func NewCache[I, K comparable, V cache.Entry[I, K]]() cache.Cache[I, K, V] {
|
|
return noop[I, K, V]{}
|
|
}
|
|
|
|
func (noop[I, K, V]) Set(context.Context, V) {}
|
|
func (noop[I, K, V]) Get(context.Context, I, K) (value V, ok bool) { return }
|
|
func (noop[I, K, V]) Invalidate(context.Context, I, ...K) (err error) { return }
|
|
func (noop[I, K, V]) Delete(context.Context, I, ...K) (err error) { return }
|
|
func (noop[I, K, V]) Prune(context.Context) (err error) { return }
|
|
func (noop[I, K, V]) Truncate(context.Context) (err error) { return }
|
|
func (noop[I, K, V]) Close(context.Context) (err error) { return }
|