-
Notifications
You must be signed in to change notification settings - Fork 6
Possible features
Max edited this page Jun 21, 2023
·
21 revisions
Map: :m: - first :fire: - second :hourglass: - last
- Configuration
Ⓜ️ Declarative configuration- 🔥 Endpoint configuration inheritance
- 🔥 Endpoint configuration overload
Ⓜ️ Set of predefined configuration profiles aka presets (base on load profile)Ⓜ️ Custom rules for URL declaration (simpler in compare to REGEXP for example: '/clusters/{cluster_id:i32}/comments/')- ⌛ Configuration groups (Common describing rules for multiple endpoints)
Ⓜ️ On-fly configuration changing (Based on some API without restarting)Ⓜ️ Configuration validationⓂ️ Admin panel (Configuration editor (UI may bet based on API) and metrics)- 🔥 Cache policy for all requests that didn't match on any Endpoint/Group configuration
- ⌛ Priority of endpoint/group configurations
- ⌛ Upstream balancing
- ⌛ Configuration of invalidation relation between Endpoints
- ⌛ Per application configuration (Based on HTTP host or Endpoints)
- 🔥 Specification first (OpenAPI based configuration)
- Backends
Ⓜ️ In-memory- 🔥 Others Eviction policies
- 🔥 Configurable size of in-memory storage
Ⓜ️ TTL eviction policy
Ⓜ️ Distributed- ⌛ Persistent ( Database )
Ⓜ️ File
- Functionality
- ⌛ Upstream balancing
- Locks
- 🔥 Distributed locks
Ⓜ️ Instance local
Ⓜ️ Stale cache- ⌛ Cache invalidation based on Endpoints event. (Changing some data by another endpoint)
- ⌛ Offload (Request storage with a re-sending request to upstream and cache invalidation based on response)
- ⌛ TTL prediction algorithm
Ⓜ️ Metrics (Collector agnostic)Ⓜ️ logs (tokio-tracing level debugging)- 🔥 Supporting opentelemetry
- ⌛ Supporting other engines for tracing
- ⌛ Rate limiting (bucket, sliding window, throttling, distributed) (research)
- ⌛ Authorization support for upstreams (reals)
- ⌛ Cluster mode admin panel (brings info about pods to wizard from k8s)
Ⓜ️ Inner OpenAPI- ⌛ On-load cache invalidation (Cache invalidation by application version or by OpenAPI changes)
- 🔥 API based cache invalidation
Ⓜ️ Auto-enabling cache by riching preconfigured top hits.- ⌛ k8s as a service discovery (controller for k8s)
- Protocols
Ⓜ️ HTTP(S)- 🔥 gRPC
- Documentation
- 🔥 User guide with common use-cases (Described on configuration presets)
- ⌛ Deployment examples
Ⓜ️ https://diataxis.fr/
- Cache key generation
Ⓜ️ HeadersⓂ️ Query paramsⓂ️ MethodⓂ️ Payload (Something like jq)Ⓜ️ Path
- Distribution
Ⓜ️ Docker & k8s deployment- ⌛ Packages for all OS