1. A computing device comprising at least one processor and a memory, the memory storing computer-executable instructions for causing the computing device to be configured to: load a subset of geo-fences from secondary storage to primary storage for tracking by the computing device, the subset of geo-fences selected from a set of available geo-fences stored in the secondary storage, based on a selection criteria; create a boundary geo-fence with a radius corresponding to a distance between a current location of the computing device and an edge of a geo-fence in the subset of geo-fences that is furthest from the current location of the computing device; and upon detecting a geo-fence event associated with a new location of the computing device in relation to the boundary geo-fence, re-load a new subset of geo-fences and create a new boundary geo-fence based on the new location of the computing device, wherein the geo-fence event comprises one of a geo-fence enter event or a geo-fence exit event.