At the core of every loyalty program, is something we call the ‘points bank’. The purpose of the points bank is simple - to track the loyalty points balances and points expiry of each and every member within the program. Although the purpose and usage of the points bank is simple, designing the points bank to meet all our requirements is not as straightforward.
In this short exercise, we would love to have a discussion around how we would model the data entities within the points bank to support both the functional and non-functional requirements that we want to achieve.