sdk-selection · git:20260728.419e522 · 2026-07-28 · sha256 aa89af4c80b6dcbf

sdk-selection git:20260728.419e522A

Immutable. This exact content is served forever at /api/v1/blob/aa89af4c80b6dcbf.

---
name: sdk-selection
description: Decide between a provider's SDK and direct HTTP calls, weighing convenience against dependency weight and control. Use when starting an integration.
---

# SDK selection

An official SDK saves real work and adds a dependency with its own
release cycle, transitive packages, and opinions. Direct HTTP is more
work up front and leaves you in control of every detail.

## Method

1. **Prefer the official SDK for complex protocols.** Signed requests,
   multipart uploads, and streaming are where hand-rolling produces
   subtle bugs (see payment-integration).
2. **Use direct HTTP for simple, stable endpoints.** A handful of REST
   calls does not justify a dependency tree.
3. **Inspect the dependency weight before adopting.** Some SDKs pull in
   dozens of packages, expanding your supply chain surface (see
   supply-chain-security).
4. **Check the SDK's own behaviour.** Its default retry, timeout, and
   error handling may conflict with your resilience strategy and is
   often undocumented (see integration-resilience).
5. **Wrap it regardless.** Even an SDK belongs behind your own
   interface, so a change of SDK or provider is contained (see
   third-party-integration).
6. **Verify maintenance status.** An abandoned SDK becomes your
   maintenance burden with none of the control (see
   forking-and-vendoring).
7. **Check language and version support.** Official does not mean
   equally maintained across languages, and secondary SDKs lag.

## Boundaries

SDKs abstract the API and hide behaviour you may need to control.
Direct HTTP means implementing authentication and pagination yourself.
Either way the provider's semantics govern, and the SDK is a convenience
rather than a contract.