6 Ways to Make Your Integration Fail

DZone 's Guide to

6 Ways to Make Your Integration Fail

Enjoying failing? Probably not. Learn from the mistakes and avoid running into problems with your integrations.

· Integration Zone ·
Free Resource

We don't always approach an integration with the intent to fail. But you know what they say, fail fast and move on. Learn from your failures. The greatest teacher, failure is. Just had to throw in a Yoda joke — it's Friday! So let's dig in, here are 6 ways you can be sure to make your integration fail.

1. Don't Monitor for Insightful Usage Data

Why bother setting up integration performance reporting to monitor your users integration usage? Build it. Test it. Forget it. Right? Well, of course not. When you do not measure your integration stats, or even feed the data into your application teams' performance monitoring tools (APM), you lack user experience data. Pass the usage data to your monitoring team, and enable support to better understand usage patterns. Being proactive here will gain you insights required to predict future integration needs.

2. Never Do Health Checks on Endpoints

Without frequent endpoint health checks, your app will get the blame when things go wrong. Stay ahead of unhappy customers who often voice their concerns about the stability of your product. We recommend automating health checks for your app's integrations to determine if the endpoint is the issue or if your integration or your app are at fault. With a ping to an endpoint you can diagnose one of the most frequent integration issues.

3. Make Sure Your Response Times Are Really (Really) Slow

Response time issues are among the most frequent complaints with integrated apps. So if you really want to make your integration fail, relish in the slow response times! Otherwise, partner up with your ops team is to understand the response time from each endpoint. Isolate your application's performance vs. the performance of the endpoint you are connecting to. Some endpoints are notoriously slow and you will want to make sure that the proper expectations are set with your clients for performance delays when integrating to slower endpoints. If slower response times persist, you can also choose to implement a cache or a number of other mechanisms to improve performance.

4. Do Not Tag Your Usage Data

I guess if you really want to stay organized, then fine, tag away. By tagging your usage data you're able to rapid filter your logs to isolate and debug issues. Tags are vital to enriching your reporting and dashboard experience. Use tags to dig into the granular data and fully support filters, searches, and queries.

5. Create Inconsistent Error Codes

Your operations team will not have time to research every vendor's error code. Standardize to the error responses your application currently runs on, so that your support team can understand and react to errors more rapidly and efficiently. We advise that you normalize the error code, but still provide a payload back from the endpoint on how they display the errors.

6. Delete Your Log Data, It's More Fun for Your Security Team

Lastly, if you really came here to learn how to make your integration successful (and not just to fail) you will want to track and log activity for each instance for support, monitoring, and security. When you embed integrations into your application, your customers will expect you to support the integration. Your support team will need access to API call activity logs, error reports, and alerts to provide the success experience for your customers. Tagging the API calls with an identifier for each customer's instance of an integration will make it easier for your team to manage and support the specific user.

Your integrations are better than these failure modes. Get our API cheat sheets for a few more helpful tips on avoiding failure.

integration ,fail fast ,funny ,api ,cloud elements

Published at DZone with permission of Ross Garrett , DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}