Skip to content

⭐ [Enhancement]: Add Level 2 Caching #2543

@JerryNixon

Description

@JerryNixon

Configuration Change

Original

Runtime

{
  "runtime": {
    "cache": {
      "enabled": <true> | <false> (default),
      "ttl-seconds": <integer; default: 5>
    }
  }
}

Entity

{
  "entities": {
    "<entity-name>": {
      "cache": {
        "enabled": <true> (default) | <false>,
        "ttl-seconds": <integer; default: 5>
      }
    }
  }
}

Proposed

Runtime

{
  "runtime": {
    "cache": {
      "enabled": <true> | <false> (default),
      "ttl-seconds": <integer; default: 5>,
      "level-2": { // new section
        "enabled": <true> (default) | <false>, 
        "provider": "redis" (default), // only supporting redis for now
        "connection-string": <string>,
        "ttl-seconds": <integer; default: 60>,
        "backplane": {  
          "enabled": <true> (default) | <false>,
          "channel": <string; default: "dab-cache-channel">
        }
      }
    }
  }
}

Summary

Property Type Default Required Description
enabled boolean true No Enables level 2 caching.
provider string "redis" No Cache provider, only Redis is supported.
connection-string string N/A Yes Connection string for the Redis cache.
ttl-seconds integer 60 No Time-to-live (TTL) for level 2 cache entries.

Entity

{
  "entities": {
    "<entity-name>": {
      "cache": {
        "enabled": <true> (default) | <false>,
        "ttl-seconds": <integer; default: 5>,
        "level": <one (default) | two> // new enum
      }
    }
  }
}

Summary

Property Type Default Required Description
level enum (one, two) one No Chooses cache level.

Ancillary requirements

  • Config/Runtime updated
  • Config/Entity updated
  • CLI support: dab configure --runtime.cache.level2.enabled
  • CLI support: dab configure --runtime.cache.level2.provider
  • CLI support: dab configure --runtime.cache.level2.connection-string
  • CLI support: dab configure --runtime.cache.level2.ttl-seconds
  • CLI support: dab validate (rules)
  • Docs updated CLI
  • Docs updated Config/Runtime
  • Docs updated Config/Entities
  • Hot Reload updated
  • .NET Aspire Sample

Metadata

Metadata

Labels

enhancementNew feature or request

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions