Design for performance

Completed

The design phase is for structuring, and it leans on the gathered requirements during the analysis phase. Scalability, responsiveness, integration, and data migration are four aspects to consider during a design phase.

  • Design for scalability - Design for parallel processing at order and line level. Consider platform limiting factors (throttling, load size limits, implementation limits, or minimum recurrence).​

  • Design for responsiveness​ - Select appropriate patterns: synchronous, asynchronous, or background process.​ Minimize actions that don't perform.​ Consider the potential impact of data growth (purging and archiving) and​ how caching has been set up.​

  • Design integration with performance in mind​ - Decide when and how often each integration will run. Consider bidirectional messaging and​ how to handle the peak volumes for each integration.​ Determine which platform-limiting factors can be in play for each integration flow (throttling, load size limits, or implementation limits).​

  • Design data migration with performance in mind​ - Make sure that you understand data migration business requirements and data migration volumetrics.​ Additionally, you should understand cutover duration limitations and platform limitations as they apply to the data migration approach.

Design for scalability

Two scalability formats are available during the design phase: parallelism and platform limits.

  • Parallelism - When using this type of format, consider its characteristics:

    • Event based - Most interactions in Intelligent Order Management are designed to be event-driven, which you need to consider from the beginning of the design phase. ​

    • Concurrent implementation - You need to consider all orchestration-based scenarios from the concurrent implementation perspective. ​

    • Concurrent access - Make sure that you consider shared components carefully, such as the data storage layer. The data storage layer is common to orchestration processes and UI-based business processes, which means that the care that you take on shared resources concurrency access is critical, and you need to view it holistically.​

  • Platform limits​ - When using this type of format, consider the following limitations:

    • For more information on request limits, see Requests limits and allocations.

    • Reach out to your project-named FastTrack solution architect or Dynamics 365 FastTrack Intelligent Order Management product crew at D365FTIOMPCREW@microsoft.com.

Design for responsiveness

For responsive design, use asynchronous process patterns such as concurrent implementation. Most interactions in Intelligent Order Management should be event-driven. Consider data growth impacts, such as archiving and purging, and you should also analyze key and search index creation.

Note

Be aware of platform limits, such as the 429 Too Many Requests error from the Web API, the OrganizationServiceFault error from Organization Service, and service protection API limits from Dataverse.​

Design for integration performance

For effective integration with Intelligent Order Management, consider the frequency and size of messages and average and peak volumes, and you should use asynchronous patterns whenever possible. Make sure that you evaluate middleware for chattiness, throttling, guaranteed delivery, and error handling. Additionally, you should consider platform limits and constraints from other platforms. The Web API and Organization Service might return specific error messages, and you should consider API limits for service protection in Microsoft Dataverse.​

Design for data migration performance

To migrate data for your Intelligent Order Management implementation, make sure that you understand the business requirements for the data, the volume of data that needs to be migrated, and the entities that are used. Additionally, you should consider the duration and constraints of the cutover process, including the limits of Microsoft Power platform, source system, and tooling that's being used. When selecting tooling options, you need to consider the available options, and then choose the best option based on the specific requirements of the migration.

Implementation performance impacts

To prepare for Intelligent Order Management implementation, consider the environment planning, user personas, and performance requirements. Customization and performance are key factors, and bad design can negatively impact performance. Avoid common mistakes, such as chatty code and retrieving too much data. Use asynchronous events and consider the impact of connected components. Make sure that you consider evolving requirements.