3
0 Comments

Building Integrations: Checklist!

Hey folks,
we compiled a checklist of everything you need to consider if you're planning to start building integrations for your SaaS.

Writing integrations is generally considered hard, mundane work but this checklist would really put things in perspective

You need to:

  • Support 10s of API styles
  • Support 10+ types of authentication (OAuth1, OAuth2, JWT, Key-based, Basic Authentication, OpenID, etc.)
  • Provide a UI and UX for the integration
  • Support GraphQL for more modern APIs
  • Support Push APIs for event-based, incoming data
  • Provide mapping of custom fields
  • Implement polling for old-school APIs that don’t support push APIs. Polling causes 1000s of calls per day for every user.
  • Define queries and filters to get your specific data
  • Provide Pagination support: if you’re doing a data import and there are millions of records, you need to page the calls so you can get more data without running out of memory
  • Perform data conversion. For example, many dates will differ in formats. For example, one API might show the date as 19/02/2020 but you might require 19th Feb 2020 as the format. The same applies to phone numbers, time fields, timestamps, numbers with scientific notations, large numbers, etc
  • Implement retry logic in case an API isn’t working with exponential backoff
  • Keep track of the state of data if you’re doing data sync
  • Perform conditional actions based on various events
  • Implement API limits: Service providers place limits on API calls. So your algorithm needs to tackle that. This is also known as throttling.
  • Implementing a queueing system for when you get throttled or when the API is down. You want to retry the task afterward.
  • If you’re doing 2-way syncs, you need to implement complex logic to break infinite update loops where the same update keeps going back and forth between two systems in sync. It’s a lot common than you’d imagine.
  • Support and manage the infrastructure for all of this
  • If you’re doing 2-way sync, maintain data-mapping tables between services
  • Maintain API versions, manage API changes and upgrades
  • Test APIs for inconsistencies. You’d be surprised how frequently what’s documented in the API and the behavior are not the same

We wrote a blog post around it. You can read more here

Is there anything else you'd add to this list?

on September 9, 2021