Scenario – Legacy system
The customer must feed a legacy system, which acts as an interface for the company’s clients. All client information must be refreshed every night, and many records and updates are frequent. Premium clients must be refreshed in near real-time. Microsoft Dynamics 365 is always the master system.
Patterns – Two-speed integration
Consider the following patterns (best practices):
- Consider designing the two scenarios separately due to the different requirements, even on the same entity.
- Meet the different business needs with different integration patterns (such as business events/data events and Data Package API export/Azure Data Lake Storage (ADLS)).
- Evaluate by using more than one endpoint in the same solution. Avoid misuse of the integration patterns.
Further information
Use a bulk export to meet the base requirements (full/incremental sync every night) and near real-time integration, such as business event or data event, based on a trigger point (process change versus record change) to fulfill the premium customers exception.
Don’t extend the business/data event scope (designed for small, nimble messages, not bulk data, business process-driven context). Rather, enrich the payload with a separate call. For example, a business/data event can trigger an app from Microsoft Azure Logic Apps, which can retrieve the customer details through an OData call or by using virtual entities. Finally, the logic app would update the legacy system. The two-speed pattern avoids overwhelming the system with a high volume of unnecessary synchronous calls.
Anti-patterns
Consider the following anti-patterns (pitfalls):
- Increase frequency of full export to near real-time integration.
- Use a single integration model for the two business requirements.
- Use a polling solution.