nebulex
nebulex copied to clipboard
Nebulex v3 Roadmap
Nebulex v3 Roadmap
v3.0.0-rc.0
- [x] Ok/Error tuple Cache API
- [x] Remove adapter implementations from Nebulex since they will be moved to separate repositories. Nebulex repo will only keep the generics, like the APIs, annotations, overall utilities, etc.
- [x] All cache commands optionally support passing the wanted dynamic cache (name or PID) as the first argument to directly interact with a cache instance (additional to
c:get_dynamic_cache/0c:put_dynamic_cache/1,c:with_dynamic_cache/2). - [x] Deprecate
Nebulex.Adapter.Statsbehaviour in favor ofNebulex.Adapter.Info. Instead of having a behaviour that only returns cache stats, the idea is to have a more generic or broader behaviourNebulex.Adapter.Infoto return stats and more information about the cache, such as consumed memory, etc. - [x] Deprecate
Nebulex.Adapter.Persistencebehaviour. The current implementation only supports dumping the cache entries into a local file. It is quite a limited approach. Persistence can be implemented in many different ways depending on the use case. A persistence API with a specific implementation may not be very useful because it won't cover all possible use cases. For example, if your application is on AWS, perhaps it makes more sense to use S3 as persistent storage, not the local file system. Since Nebulex v3, persistence is an add-on that should be provided by the backend (e.g., Redis), another library, or the application itself. And it should be configured via the adapter's configuration (or maybe directly with the backend). - [x] Support dynamic cache in decorators.
- [x] Evaluate the
:cacheoption for decorated functions in runtime. - [x] Telemetry events for cache commands out-of-box.
- [x] Unify
allandget_allinto one single callbackget_all. The callbackget_allwill belong to the Query API and will support the predefined query{:in, keys}for getting multiple keys simultaneously. - [x] New option/flag
:bypass_modeto bypass the cache while running tests. - [x] Fix possible inconsistencies on caching decorators when using references (reported in #215).
- [ ] Review and fix the guides to ensure they are consistent with the v3 changes.
- [ ] Review and fix the docs, ensuring proper grammar, no typos, mistakes, inconsistencies, etc.
Adapters
- [x] Move the
Nebulex.Adapters.Localadapter to a separate repository supporting the API v3. - [x] Move the
Nebulex.Adapters.Partitionedadapter to a separate repository supporting the API v3. - [x] Move the
Nebulex.Adapters.Multileveladapter to a separate repository supporting the API v3. - [ ] Migrate nebulex_redis_adapter to v3.
- [ ] Migrate nebulex_adapters_cachex to v3.
v3.0.0-rc.1
- [ ] Implement
nebulex_mnesiaadapter. This new adapter will cover several use cases as well as distributed cache topologies. With Mnesia, it will be possible to have a local cache and a distributed cache with replication (and fragmentation). Maybe deprecateNebulex.Adapters.Replicatedadapter.
WIP - See branch v3.0.0-dev