While an application may consume several data sources, a primary application data store should be used.
For most data storage scenarios, Microsoft SQL should be used. Azure SQL should be the first choice for new projects, however Microsoft SQL running on a virtual machine (VM) can also be used.
For scenarios in which unstructured data needs to be persisted, a NoSQL option such as Azure Cosmos Db, Azure Table Storage, or Azure (Redis) Cache should be used depending on the use case.
If most data used by an application is stored in the application’s database, then this database can likely be implemented as an Azure SQL PaaS database.
ETLs can be used to copy data to a central reporting system.
Event-ing can be used to facilitate real-time processing.
An application should access common or shared data via an API (not via direct data access or ETL of data into their own database).
Solution Architecture Guidance
NEXT: Data Access and ORM