Too Long; Didn't Read
When your application grows, you may find several parts of your stores doing the same kinds of work for different types of <a href="https://hackernoon.com/tagged/data" target="_blank">data</a>, ideally we want to reduce duplication by reusing the same common <a href="https://hackernoon.com/tagged/logic" target="_blank">logic</a> for each data type. It can also happen that you want to have multiple “instances” of the same type of data.