At the moment we fetch all badges on each individual page visit and request. This is wasteful, since badges are immutable and have a clear ttl (time to live).
In order to reduce the load and cost tremendously, some form of frontend caching and cache invalidation on the backend need to be implemented asap.