Dual-write architecture

Completed

Microsoft Dynamics 365 Sales, Customer Service, and Field Service are built on the Dataverse platform, but finance and operations apps isn't. By using dual-write and virtual entities, you can create a connection between Dynamics 365 apps for a unified experience.

Dual-write provides a seamless integration between Dataverse and finance and operations apps. It accomplishes this integration by replicating the update, delete, and create operations from one system to the other, bidirectionally, over a near real-time, service-to-service call so that data can flow between environments. This process happens over tightly coupled, point-to-point connections, with no external dependencies that transfer master data (such as customers, accounts, and products) and business document data (such as sales orders and invoices) from one system to the other and vice versa.

Dual-write architecture and licensing

Dataverse stores data in Dataverse entities. When the system detects a create, read, update, or delete (CRUD) operation on the dual-write entities, the plug-in validates the mappings of the data that's flowing from Dataverse and transfers the data over to a service-to-service call by using theĀ OData protocol. The OData protocol transforms the data to the required format, and then it creates, updates, or deletes the same data in the finance and operations apps connected environment.

Diagram of dual write architecture showing finance and operations apps and Dataverse.

This connection is bidirectional. Therefore, if you update, delete, or create finance and operations apps data that's held in or exposed by using entities, then the system records transforms, and transfers the events from the OData connection to Dataverse. In its most basic form, this integration is synchronous and is near real-time.

If you use LiveSynch in the same transaction, the data doesn't commit to the target database until the entire process is complete. If an error occurs over the transition, the translation, or due to business validation, then the entire transaction fails, meaning that it won't commit to any of the apps.

Licensing isn't required to turn on dual-write, and extra licensing isn't required if you want to set up unrestricted tables to write against. However, when dual-write is set up against a restricted table, the user who's making the updates in finance and operations apps that result in updates in Dataverse must be appropriately licensed. For example, if Dynamics 365 Finance users are taking advantage of dual-write functionality to integrate the invoice process (which is a restricted table in Dataverse), then they need to have licensing set up according to theĀ licensing and pricing guide for Dynamics 365.