hi, thanks for your interest in this project!
The main difference is that riak core lite is a modern and simplified version of riak_core which enables applications built on top of it to stay up to date, they are also easier to setup and run on more architectures and operative systems due to it being pure erlang.
The idea is to try to exercise all the APIs exposed by riak core, and have a reference implementation that is documented and maintained to test riak core lite changes, detect regressions, run benchmarks and use as the default starting point to try new ideas and show how different parts of riak core lite are used in practice.
Also it will be used as the foundation for other projects that will test this reference implementation (and riak core by extension) by using different testing methodologies.
It would be nice to have 2 implementations, one in Erlang and one in Elixir, that are as close as possible to each other in terms of features and architecture.
The following is a list of features that can be implemented in order, each point leaves a useful service, the more that can be implemented the better.
- GET, PUT, DELETE with bucket support with ets backend
- Pluggable persistence backends, add dets support
- Change feed subscription for keys (PUB/SUB)
- Bucket permissions (requires authentication/authorization)
Alternatively, you could implement something different like a message queue, a pubsub (MQTT, Kafkaish) or a time series db service, we can discuss alternatives that show how riak core can be used to implement other kinds of services.