The idea is to create a simple implementation of a time-decaying popularity algorithm that can be used as a standard building block for many applications similar to how the Related::Follower module is useful.
The popularity algorithm should be time-decaying but preferably time-independent just like the Reddit algorithm. That makes it efficient to compute and easy to implement as a real-time stream processing data flow.
The ultimate implementation would be if we could also make the algorithm completely incremental and thus independent of the individual votes to compute the current score. That would mean that each time a new vote is cast a relative score is computed and the current score is incremented/decremented by the relative score. That way you don't have to fetch all previous votes and recalculate the absolute score every time a new vote is cast.
The idea is to create a simple implementation of a time-decaying popularity algorithm that can be used as a standard building block for many applications similar to how the Related::Follower module is useful.
The popularity algorithm should be time-decaying but preferably time-independent just like the Reddit algorithm. That makes it efficient to compute and easy to implement as a real-time stream processing data flow.
The ultimate implementation would be if we could also make the algorithm completely incremental and thus independent of the individual votes to compute the current score. That would mean that each time a new vote is cast a relative score is computed and the current score is incremented/decremented by the relative score. That way you don't have to fetch all previous votes and recalculate the absolute score every time a new vote is cast.