Skip to content

Deprecating cache utilities (removal in 3.6.0) #237

@simonbasle

Description

@simonbasle

Motivation

CacheMono and CacheFlux helpers were an attempt at providing a sane solution to adapt various cache / means of caching into a reactive facade.

There is very little bandwidth to maintain it, and it seems it is not entirely helpful. Maybe even going as far as causing more problems than it solves.

See for example #162, #181, #201 (and recently closed #234...)

When using a caching solution like https://github.com/ben-manes/caffeine that has a future-based async API, we can recommend to just wrap the futures using Mono#toFuture() and Mono.fromFuture(f).

For other use cases for CacheFlux I could find in the wild the path would be a bit more ambiguous.

A few relevant projects that build up on CacheFlux/CacheMono I could find in github include:

Desired solution

One of the following outcomes:

  1. gather feedback indicating that although it has shortcomings (eg. cache stampeding), it is useful for usecases that are not too advanced and should be kept as is, in low maintenance mode
  2. get a community member to step up and spin CacheFlux/CacheMono into a separate community-supported project, deprecate reactor.cache classes in favor of said community project
  3. gather feedback that the drawbacks of CacheFlux/CacheMono overcome the benefits, deprecate reactor.cache classes for future removal

pinging the owners of the above projects for feedback:
@deeperunderstanding, @Odysseymoon, @alex-pumpkin, @rezaarshad, @pkgonan, @Hothire, @making, @mmaggioni, @spencergibb.

also pinging users that contributed to discussions in the above issues:
@dave-fl, @cybuch, @wer-mathurin, @ben-manes, @hmble2, @dannyjiang001

Metadata

Metadata

Assignees

No one assigned

    Labels

    for/user-attentionThis issue needs user attention (feedback, rework, etc...)warn/deprecationThis issue/PR introduces deprecations

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions