Hi BadalPanda I give you some comments about your questions, hope this helps.
- Azure Functions is just one more way to push data into data lake based on events generated in apps side (It does not necessary apply for all cases, it depends on what data sources you want to connect to send data to data lake or database
- These architectures are scalable to adjust to the volume of data and processes you are planning to execute. In my experience I have handle projects with around 15TB of data with architectures like this one, including implementing https://learn.microsoft.com/en-us/azure/architecture/patterns/ for common tasks
- You can use CosmosDB in those scenarios in where you need to share new data (as a result from analysis) back to apps like mobile app that consider it for showing updated content to user (An example is 360 customer view that you can complement with new products offering based on customer behavior)
- Dedicated pools are more to persist data like star data models, data warehousing tasks. Serverless pool is use for querying data for exploring purposes
Regards,