Hi DJ - big question! Let me try to answer it concisely without getting too in the weeds. Both Server and Cloud provide an API that drives the UI as well as all workflow operations (setting states, sending logs, updating configuration settings, releasing work at the right time, etc.)
There are additionally a lot that happens behind the API, both when it’s in use and when it’s not. For example, in both Server and Cloud there is a “Zombie Killer” service that is constantly monitoring for Running tasks / flows that have stopped talking to the API. Cloud of course has more of these services and hooks than Server, but the idea is the same - providing a monitoring / insurance platform for your workflows.
Prefect Server specifically has a scaling limit because every request that hits the API requires a database query. This means that every time you open the UI, every time you send a log or a state, etc. you are talking directly to the database. Cloud, on the other hand, has much more caching + horizontal and vertical scale built in so can essentially scale to infinity.