Design an async job system and cache layer | Salesforce Interview Question