From monolith to candidate services
A university runs one big application that handles everything: student records, the course catalog, enrollment, invoicing and payments, and email notifications. Every change requires redeploying the whole system, and the enrollment rush in September takes the invoicing screens down with it.
Your task: propose a decomposition into 4 to 6 candidate services. For each one, give a name, a one-sentence responsibility, and one example operation it would expose. Then answer: which piece of data is the hardest to split, and why?