Integrating with other services, internal or external, is always a challenge. Even with the integration itself happens smoothly, a single API change on one end, or a dependency doing something odd, can create a whole host of challenges, and there’s a couple of approaches you can take.
- You can use network capture tools to cache external responses and test against those, but those can go out of date pretty easily.
- You can mock the services in tests, and that has the same issue.
- You can set up monitoring and exception handling just around the API consumption, but then you’re putting a ton of data assertions into your code that have a similar problem to mocking services.
The real solution is to never integrate with other services ever and build everything you would ever need and force all your users to buy into that. That’s realistic, right?
Bamboo - “Sorry! I’ll pick them up!”
Clerk - “I’m almost afraid to ask…”
Bamboo - “…I’m rigging up the exhaust of my car to a windmill to run my mixer so I can make some pizza dough…those’ll be easier to integrate than the four SaaS services with our three apps at work.”
Clerk - “Whatever helps you sleep at night, I guess.”