Skip to content

Olive’s caching layer does not support distributed environments  #440

@addrino

Description

@addrino

We migrated from a single‑instance EC2 setup using Olive’s in‑memory cache to an ECS deployment with multiple tasks and found that the Olive.Cache.Redis package is non‑functional in our environment: it fails to connect and depends on BinaryFormatter, which causes compile errors in our target framework. As a result, Olive effectively behaves as a local cache per task, so keys do not propagate between tasks. We introduced an external Redis middleware, which works under low traffic alongside in‑memory caching, but Olive’s data structures are not compatible with other implementations we tried. During load testing, we observed DB call amplification and a bottleneck around Olive’s UserSession, which performs frequent update/insert/get operations and publishes to Redis, triggering fan‑out to subscriber tasks. We refactored the hotspots identified in the load tests to reduce contention and improve performance.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions