Skip to content

Possible features

Max edited this page Jun 21, 2023 · 21 revisions

Map: :m: - first :fire: - second :hourglass: - last

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