DEV Community

Discussion on: Developers who maintain many external API integrations, how do you maintain them?

Collapse
 
ben profile image
Ben Halpern

I've built apps that relied heavily on third party APIs for data gathering (price comparison) and at other times for app features/infrastructure (CDN, hosted search, etc.)

I'd love to hear about what other people do, because it's an area where I constantly feel like I might be missing the big picture and doing it wrong.

  1. For dev.to the needs trend more towards the app features/infrastructure realm as opposed to data ingestion. We use Fastly for CDN, Cloudinary for image CDN/manipulation, S3 for hosting static assets, Keen for storing event data, Sendgrid for emails, Algolia for hosted search. Some are sort of configure-and-forget with an abstraction library, and some we integrate with the API itself more.
  2. Big painpoints are managing the services across different development environments. Everything self-contained within our application's logic can be easily spun up for different people, but when we add services, it introduces complications and differences across environments that are hard to deal with. We're doing fine now, but this makes scaling the team harder. We also plan to open source the app in the future, and I'm not sure how that will work. Being a monolith that interacts with a few services here and there as opposed to being service-oriented from the ground up contributes to this, but this works fine for now, and breaking out would introduce its own headaches.
  3. I wouldn't say we have a good overall solution, except just trying to encapsulate the behavior so that the implementations can be substituted more easily.
  4. I'm not sure about ideal scenario, but I'd love to hear more.

I'm not sure if these sort of APIs are the sorts of things you're looking for. The data-oriented APIs are a more straightforward, of trying to build build/make use of libraries that wrap the APIs and trying to build out a mocking framework for testing earlier, rather than waiting until it gets too hairy.

Collapse
 
musingmurmurs profile image
Elizabeth

Thanks Ben! I'll let you know what consensus is :)