Designing resilient API integrations