“Good fences make good neighbors.”
- Robert Frost
We love to tell true stories, especially when they help us make a point. This one is about a hapless rookie reports developer. His IT department invested in a low-budget reporting platform for their ERP and didn’t do anything to optimize the integration. The young developer tried to extract a massive dataset covering several years of transactions. Hundreds of people screamed when the ERP slowed to a crawl.
Fortunately, this developer was not in a multi-tenant environment, so he upset only a few dozen people, not thousands.
Multi-tenant SaaS providers like Workday® have put controls in place to prevent tenants from running large, poorly designed integrations that use too much overhead. The safeguards include terminating processes that exceed these limitations:
While these “fences” help us be good neighbors in a multi-tenant environment, there is more we need to do to prevent glitches and support issues in our Workday® Studio integrations. Fortunately, Workday® engineers and customers have already experienced the pain and shared their experience. You can follow a few best practices to make sure your integrations run quickly and smoothly.
You can handle most of your integrations with Workday® using packaged integrations like connectors, but situations do occur where a connector doesn’t exist or we have a unique requirement that requires the skills of a developer. For this purpose, Workday® provides Studio, an IDE for integration developers.
The assembly framework in Studio provides all the components you need such as splitting, transforming, aggregating, and streaming. It also provides all the standard transports in addition to the Workday®-In and Workday®-Out transports.
Using these components doesn’t optimize your integration for you. You will also need to follow these best practices.
Service limits. In addition to the restrictions mentioned above, you also need to consider these:
Scalability. The simple way to deal with scalability is to make all your integrations scalable. By assuming your data sets will grow to size that will be unmanageable as a single document you will prevent future issues. Workday® recommends you always use the splitter before you process your data, then aggregate it or invoke a paged web service.
Streaming. Some assembly components have streaming turn off by default. If you use them, turn streaming on. For instance, the stream-xpath property provides support for simple XPath expressions to improve performance.
Repetitive Web Services Calls.
There are many ways to deal with repetitive service calls that slow down traffic.
XSL and XLST load messages into memory in a Document Object Model (DOM) object. Avoid problems by using Streaming Transformation for XML .
To prevent future issues, we recommend you use these best practices on every custom integration, no matter how large or small. These general guides will help you know what to look for when you are planning a custom Workday® Studio integration. You can visit the Workday® Community to get the in-depth technical documentation you will need to optimize your integrations.
Phenomecloud is a full-service technology company dedicated to helping clients solve business problems, improve the capability of their people, and achieve better results.