...
First, affinity function uniquely defines a partition for key: P(key) = partition partition.
This is a static property and cannot change in time.
The default implementation of function P is modulo division: abs(key.hashCode) % partitionsCount.
Second, affinity function defines which partitions belongs to the node: F(topology, part) = list(nodes)
...
The default implementation for function F uses the rendezvous hashing algorithm https://en.wikipedia.org/wiki/Rendezvous_hashing
...