- When requesting data from the GitHub api, put it in a cache. - Subsequent requests should use that cache. - When receiving webhooks from GitHub, use the information passed in it to update the cache. - Give each piece of data a "freshness" property so that if we miss a webhook, or if the data hasn't been fetched in a while, we can re-fetch it.