You are implementing a .NET Framework application that uses data sharded across multiple Azure SQL databases. The application must ensure transactional consistency for changes across different shards.
You need to manage the application transactions.
What should you do to meet the requirements?
You should implement elastic transactions with horizontal partitioning. This will allow you to run transactions that span across several Azure SQL databases. You should use horizontal partitioning to handle transactions that manipulate sharded data.
You should not implement elastic transactions with vertical partitioning. A vertically partitioned schema separates data by kind, such as tables provisioned in different databases. You should implement elastic transactions with vertical partitioning for these scenarios. In this scenario, data is partitioned horizontally by shards, and each database shares the same table schema.
You should not implement distributed transactions with DTC. You can implement distributed transactions with Microsoft DTC to manage transactions that use data sharded across multiple SQL Server databases. However, you can only use Microsoft DTC with on-premises SQL Server instances.
You should not move the databases to an elastic pool. You can use an elastic pool as a cost-effective solution for managing and scaling multiple Azure SQL databases that have unpredictable usage demands. Elastic pools are used to share compute resources across databases. You can run a sharded database in an elastic pool, but the databases in this pool can have completely different schemas.