I don't believe course offerings needs to be cached, if anything we can just have an offered key with a boolean value indicating whether or not it's offered. This is because on the frontend when a course is loaded it doesn't search for the list of offerings it just runs a searchSchedule on the course and department to get all the details. The offered boolean will tell the frontend whether or not it should even make a request to searchSchedule to get the full details.