Skip to content

Roadmap

Maxim Belousov edited this page Jul 9, 2023 · 5 revisions

MVP

  1. Configuration
    1. Ⓜ️ Declarative configuration
    2. Ⓜ️ Custom rules for URL declaration (simpler in compare to REGEXP for example: '/clusters/{cluster_id:i32}/comments/')
    3. Ⓜ️ On-fly configuration changing (Based on some API without restarting)
    4. Ⓜ️ Configuration validation
    5. Ⓜ️ Cache policy for all requests that didn't match on any Endpoint/Group configuration
  2. Backends
    1. Ⓜ️ Distributed
  3. Functionality
    1. Locks
      1. Ⓜ️ Instance locks
    2. Ⓜ️ Stale cache
    3. Ⓜ️ Metrics (Collector agnostic)
    4. Ⓜ️ logs (tokio-tracing level debugging)
  4. Protocols
    1. Ⓜ️ HTTP(S) issue
  5. Cache key generation
    1. Ⓜ️ Headers
    2. Ⓜ️ Query params
    3. Ⓜ️ Method
    4. Ⓜ️ Path
  6. Distribution
    1. Ⓜ️ Docker

Release 1.0

  1. Configuration
    1. Ⓜ️ Declarative configuration
    2. 🔥 Endpoint configuration inheritance
    3. 🔥 Endpoint configuration overload
    4. Ⓜ️ Custom rules for URL declaration (simpler in compare to REGEXP for example: '/clusters/{cluster_id:i32}/comments/')
    5. Ⓜ️ On-fly configuration changing (Based on some API without restarting)
    6. Ⓜ️ Configuration validation
    7. Ⓜ️ Cache policy for all requests that didn't match on any Endpoint/Group configuration
    8. 🔥 Specification first (OpenAPI based configuration)
  2. Backends
    1. 🔥 In-memory
      1. 🔥 Eviction policies
      2. 🔥 Configurable size of in-memory storage
    2. Ⓜ️ Distributed
  3. Functionality
    1. Locks
      1. 🔥 Distributed locks
      2. Ⓜ️ Instance local
    2. Ⓜ️ Stale cache
    3. 🔥 Cache invalidation based on Endpoints event. (Changing some data by another endpoint)
    4. Ⓜ️ Metrics (Collector agnostic)
    5. Ⓜ️ logs (tokio-tracing level debugging)
      1. 🔥 opentelemetry
    6. 🔥 API based cache invalidation
  4. Protocols
    1. Ⓜ️ HTTP(S)
    2. 🔥 gRPC
  5. Documentation
    1. 🔥 User guide with common use-cases (Described on configuration presets)
  6. Cache key generation
    1. Ⓜ️ Headers
    2. Ⓜ️ Query params
    3. Ⓜ️ Method
    4. 🔥 Payload (Something like jq)
    5. Ⓜ️ Path
  7. Distribution
    1. Ⓜ️ Docker
Clone this wiki locally